當前位置:首頁 » 編程語言 » sql分組後如何拼接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql分組後如何拼接

發布時間: 2022-07-12 03:35:24

sql 分組統計,再合並組

select 組名2 as 組名, 產品2 as 產品,sum(數量) as 數量
from
(select case when 組名 = 'A1' then 'A' when 組名 = 'B1' then 'B' else 組名 end as 組名2,case when 組名 = 'A1' then 'aa' when 組名 = 'B1' then 'bb' else 產品 end as 產品2 ,數量
from 表
) tb
group by 組名2, 產品2

② sql group by 之後 如何合並分組的文本

db2
/
oracle
/sql
server
2005以上,可以這樣做
SELECT
姓名,
MAX(CASE
RK
WHEN
1
THEN
內容
ELSE
''
END)
||MAX(CASE
RK
WHEN
2
THEN
內容
ELSE
''
END)
||MAX(CASE
RK
WHEN
3
THEN
內容
ELSE
''
END)
||MAX(CASE
RK
WHEN
4
THEN
內容
ELSE
''
END)
FROM
(SELECT
姓名,
內容,
ROW_NUMBER()
OVER(PARTITION
BY
姓名
ORDER
BY
內容)
rk
FROM
tab)
t
GROUP
BY
姓名

③ 1、sql查詢語句時怎麼把幾個欄位拼接成一個欄位這幾個欄位是整型的。

1、語句如下:

select 欄位A, 欄位B, 欄位A + 欄位B as 欄位C From 表1

註:欄位A加上欄位B的計算列命名為欄位C

2、計算列

計算列由可以使用同一表中的其他列的表達式計算得來。表達式可以是非計算列的列名、常量、函數,也可以是用一個或多個運算符連接的上述元素的任意組合。表達式不能為子查詢。

原題的答案就是「計算列」。

(3)sql分組後如何拼接擴展閱讀:

計算列應用范圍

計算列可用於選擇列表、WHERE 子句、ORDER BY 子句或任何可使用正則表達式的其他位置,但下列情況除外:

用作 CHECK、FOREIGN KEY 或 NOT NULL 約束的計算列必須標記為 PERSISTED。如果計算列的值由具有確定性的表達式定義,並且索引列中允許使用計算結果的數據類型,則可將該列用作索引中的鍵列,或者用作 PRIMARY KEY 或 UNIQUE 約束的一部分。

例如,如果表中含有整數列a和b,則可以對計算列a+b創建索引,但不能對計算列a+ DATEPART(dd,GETDATE()) 創建索引,因為在後續調用中,其值可能發生改變。

計算列不能作為 INSERT 或 UPDATE 語句的目標。

資料庫引擎基於使用的表達式自動確定計算列的為 Null 性。即使只有非空列,大多數表達式的結果也「認為」可為空值,因為下溢或溢出生成的結果也可能為空。使用帶AllowsNull屬性的 COLUMNPROPERTY 函數可查明表中任何計算列的為 Null 性。

通過指定 ISNULL (check_expression,constant) 可以將可為空值的表達式轉換為不可為空值的表達式,其中,constant是可替換所有空結果的非空值。

網路.計算列



④ SQL SERVER按照某列的某值進行分組統計數據

SELECT 學校名稱,
語文平均分 = avg(語文),
語文及格率 = count(case when 語文>= 60 then 語文 else null end)/count(語文),
數學平均分 = avg(數學),
數學及格率 = count(case when 數學>= 60 then 數學 else null end)/count(數學)
from student
group by 學校名稱

⑤ sql分組查詢後合並符合條件的數據

可以把源表中為null 和『』的先update一下,src都統一設置成『』,如果是group by 以後合並,由於src不同,沒法合並吧。因為要考慮合並後src的值

⑥ 多條sql語句如何拼接

SQL語句拼接一般使用【union all】和【union】

兩者的區別是:

【union all】:顯示多條語句里的全部記錄;

【union】:顯示多條語句里的不重復的記錄,也就是有DIstinct的功效;


【union all】示例:

select'2016-02-06'date_timeunionall
select'2016-02-14'unionall
select'2016-06-12'unionall
select'2016-09-18'unionall
select'2016-10-09'unionall
select'2016-10-09'

結果為6行


【union】示例:

select'2016-02-06'date_timeunionall
select'2016-02-14'unionall
select'2016-06-12'unionall
select'2016-09-18'unionall
select'2016-10-09'unionall
select'2016-10-09'

結果為5行

⑦ sql 分組後怎麼把結果合並到一個類別下啊

--如果商品和類別在同一個表
--建表
CreateTableT
(
商品Varchar(10),
類別Varchar(10),
數量Int
)

--插入數據
InsertIntoTValues('蘋果','水果',10)
InsertIntoTValues('葡萄','水果',20)
InsertIntoTValues('西紅柿','蔬菜',30)

--方法一,按商品類別分類求和,加withcube選項
SelectISNULL(商品,'分類-'+類別)As商品,數量
From(
Select商品,類別,SUM(數量)As數量FromT
GroupBy商品,類別
WithCube
)S
Where類別IsNotNull

--方法二,按商品和類別分別匯總後合拼在一起,然後排序
Select商品,數量
From(
Select商品,Max(類別)As類別,SUM(數量)As數量FromT
GroupBy商品
UnionAll
Select'分類-'+類別,類別+'Z',SUM(數量)As數量FromT
GroupBy類別
)S
OrderBy類別

--如果沒有類別,需要先建一個對照表
--建表
CreateTableM
(
商品Varchar(10),
類別Varchar(10)
)
CreateTableN
(
商品Varchar(10),
數量Int
)

--插入數據
InsertIntoMValues('蘋果','水果')
InsertIntoMValues('葡萄','水果')
InsertIntoMValues('西紅柿','蔬菜')
InsertIntoNValues('蘋果',10)
InsertIntoNValues('葡萄',20)
InsertIntoNValues('西紅柿',30)
InsertIntoNValues('蘋果',15)

--查詢
SelectIsNull(商品,'分類-'+類別)As商品,數量
From(
Selectn.商品,類別,SUM(數量)As數量FromnLeftJoinm
onm.商品=n.商品
GroupByn.商品,類別
WithCube
)s
Where類別isnotnull

⑧ sqlserver 分組之後 拼接新欄位 如下:

Select B.人員ID,B.人員名稱,Left(TempInfo,LEN(TempInfo) - 1) AS 新欄位 From
(Select 人員ID,人員名稱,(Select 人員的兒女 + '-' + 兒女歲數 +',' From 人員 Where 人員ID = A.人員ID For XML Path('')) AS TempInfo
From 人員 A
Group By 人員ID,人員名稱) B
這個就是你要的。

⑨ sqlserver 分組 拼接其他欄位

SQL2005或以上才可以:
Declare
@t
Table
(
ID
int,
FName
varchar(20),
CName
varchar(20),
CAge
varchar(20)
)
Insert
Into
@t
select
1,'吳亮','吳1','3歲'
Union
select
1,'吳亮','吳2','5歲'
Union
select
1,'吳亮','吳3','9歲'
Union
select
4,'麥大偉','麥1','3歲'
Union
select
4,'麥大偉','麥2','5歲'
Union
select
6,'張思','張1','3歲'
下面是合並:
Select
ID,FName,CName=Stuff((Select
','+CName
From
@t
Where
ID=T.ID
For
xml
path('')),1,1,''),
CAge=Stuff((Select
','+CAge
From
@t
Where
ID=T.ID
For
xml
path('')),1,1,'')
From
@t
T
Group
by
id,FName