2011-10-23 21 views
0

使用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,沒有更多的價值會來的。

如何使查詢

需要幫助

+0

您是否嘗試過使用'COUNT'操作? – marnir

回答

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 
+0

@感謝你的回覆,我修改的問題,小的變化.... – Gopal

+0

@Gopal,你也取消選中我的答案,下次打開一個新的問題:) –

+0

@Gopal - 伊夫編輯。 –

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 
+0

您的查詢正在工作,例如如果20列沒有在表中意味着它應該顯示20 - 0,如何做到這一點 – Gopal

+0

@GOpal:如果「20」不存在 - 應該查詢知道應該有那裏有一個「20-0」行(而不是「21-0」或「25-0」)?你不能這樣做 - 你只能計算你桌子上真正存在的東西...... –

+0

我只有3個類別,20,30,40。有可能需要計數...... – Gopal