如何获取列值计数

时间:2011-10-23 11:50:32

标签: sql sql-server

使用SQL Server 2000

表1

Column1
  20
  30
  40
  20
  40
  30
  30

我想要像这样计算

20 - 2
30 - 3
40 - 2

如果列值20或30或40不可用,则应显示20 - 030 - 040 - 0

例如

Column1
20
30
20
30
30

预期输出

20 - 2 
30 - 3
40 - 0

我只会得到20分,30分.40。不会有更多的价值。

如何进行查询

需要帮助

2 个答案:

答案 0 :(得分:5)

select  item,count (item)  from table group by item

编辑:(编辑后)

 CREATE TABLE #table1       (          numbers int      ) 
insert into #table1 (numbers) select 20
insert into #table1 (numbers) select 30
insert into #table1 (numbers) select 40


SELECT [num]
  FROM [DavidCard].[dbo].[sssssss]

    select  numbers,count (num)  from #table1  LEFT JOIN [sssssss] ON #table1.numbers =  [sssssss].num      group by numbers 

答案 1 :(得分:4)

SQL查询101:

SELECT Column1, COUNT(*)
FROM dbo.YourTable
GROUP BY Column1
ORDER BY Column1

更新:如果您想获取可能值的列表及其在另一个表中的潜在计数(或0),您需要两个表,基本上 - 一个包含所有可能的值,一个使用实际值 - 和LEFT OUTER JOIN将它们放在一起 - 类似于:

SELECT
    p.Column1, ISNULL(COUNT(t.Column1), 0)
FROM    
    (SELECT 20 AS 'Column1'
     UNION 
     SELECT 30
     UNION 
     SELECT 40) AS p
LEFT OUTER JOIN
    dbo.YourTable t ON t.Column1 = p.Column1
GROUP BY    
    p.Column1
ORDER BY 
    p.Column1