我有一个包含列id
的简单表。此列不是主键(PK)。 id的值可以在1到10之间。我想写一个查询,它给出了一个表中所有数字的计数,如下所示:
one two three four ............
5 8 9 15 ...........
我知道我可以写一个像select count(*) from table where id = 1
这样的查询。但这会使我返回单个数字计数意味着id =1
。我需要在单个查询中编写1到10之间所有数字的查询。
答案 0 :(得分:1)
有些事情:
select
count(case when id= 1 then 1 end) One,
count(case when id= 2 then 1 end) Two,
count(case when id= 3 then 1 end) Three,
count(case when id= 4 then 1 end) Four,
count(case when id= 5 then 1 end) Five,
count(case when id= 6 then 1 end) Six,
count(case when id= 7 then 1 end) Seven,
count(case when id= 8 then 1 end) Eight,
count(case when id= 9 then 1 end) Nine,
count(case when id= 10 then 1 end) Ten
from data;
结果:
ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN
4 1 0 0 0 0 0 0 0 1
您可以使用以下内容:
select id, count(*) as Count from data group by id;
结果将显示为:
id, count
1 5
2 8
3 9
4 15
答案 1 :(得分:0)
此查询可能有用
SELECT
COUNT(*)
FROM [table]
GROUP BY [column_id]
HAVING id >= 1 && id <= 10