如何在单个 SQL 查询中使用多个计数和按条件分组
Posted
技术标签:
【中文标题】如何在单个 SQL 查询中使用多个计数和按条件分组【英文标题】:How to use multiple count and group by condition in single SQL query 【发布时间】:2015-04-10 04:56:29 【问题描述】:下面是我的 SQL 表。
Id FileName Code1 Code2
1 002-03_001.tif Y179 Y179
2 002-03_002.tif Y178 Y178
3 002-03_003.tif Y177 Y177
4 002-03_004.tif Y178 Y179
5 002-03_005.tif Y177 Y179
6 002-03_006.tif Y179 Y178
7 002-03_007.tif Y178 Y178
8 002-03_008.tif Y178 Y177
9 002-03_009.tif Y177 Y179
10 002-03_010.tif Y178 Y177
从上表中我想计算 Code1 和 code2 之类的,
Code1 Count1 Code2 Count2
Y177 3 Y177 3
Y178 2 Y178 3
Y179 5 Y179 4
【问题讨论】:
【参考方案1】:你想做这样的事情 SQL Fiddle
样本数据
create table table1
(
Id int,FileName VARCHAR(100),Code1 VARCHAR(10),Code2 VARCHAR(10)
)
insert into table1 values( 1, '002-03_001.tif', 'Y179', 'Y179'),
(2 ,'002-03_002.tif', 'Y178', 'Y178')
,(3 ,'002-03_003.tif', 'Y177', 'Y177')
,(4 ,'002-03_004.tif', 'Y178', 'Y179')
,(5 ,'002-03_005.tif', 'Y177', 'Y179')
,(6 ,'002-03_006.tif', 'Y179', 'Y178')
,(7 ,'002-03_007.tif', 'Y178', 'Y178')
,(8 ,'002-03_008.tif', 'Y178', 'Y177')
,(9 ,'002-03_009.tif', 'Y177', 'Y179')
,(10 ,'002-03_010.tif', 'Y178', 'Y177')
查询
SELECT * FROM
(
SELECT Code1,COUNT(*) Count1
FROM table1
GROUP BY Code1
) Code1
INNER JOIN
(
SELECT Code2,COUNT(*) Count2
FROM table1
GROUP BY Code2
) Code2
ON Code1.Code1 = Code2.Code2
【讨论】:
以上是关于如何在单个 SQL 查询中使用多个计数和按条件分组的主要内容,如果未能解决你的问题,请参考以下文章