我有一个格式如下的基本数据集。
Sex1 | Sex2 | Number|
F | | 5 |
M | | 8 |
M | F | 5 |
F | F | 3 |
M | F | 2 |
F | M | 1 |
F | F | 9 |
M | M | 3 |
我想使用 SQL 创建一个查询,该查询按性别组合从价格中生成总计,如下所示:
Sex | Total Number
F | 5
M | 8
MF | 8
FF | 12
MM | 3
但是,我正在努力寻找一种将 FM 和 MF 类别拉到同一行的方法。我拥有的使它们与众不同的代码的形式是
SELECT Sex1 & "" & Sex2 AS Sex, Sum(Number) AS [Total Number]
FROM TableName
GROUP BY Sex1 & "" & Sex2
有没有一种简单的方法来组合行?
您可以使用
CASE
表达式或IIf()
函数首先对两个值进行排序,然后按它们进行分组:用
CASE
表达式:带
IIf()
功能:您可以使用 UNION 查询来强制 Sex1/Sex2 对的顺序相同
生产
然后将其用作子查询来生成总计
生产
您可以尝试在 MSSQL 中使用 CONCAT() 函数将 2 列合二为一。
选择 CONCAT(
Sex1
,Sex2
) 作为 Sex,Sum(Number
) 作为Total_Number
FROMdb
。test
GROUP BY concat(Sex1
,Sex2
);