2011-01-11 157 views
0

我需要一個複雜的查詢:用不同的SQL計算總行數?

考慮一下這個表:

ID - field1 - field2 
================= 
1  a  10 
2  a  10 
3  a  20 
4  b  20 

我需要計算由FIELD1和FIELD2分組的總記錄的查詢。我的意思是我需要這個結果:

field  - count 
================== 
field1 a - 3 
field1 b - 1 
field2 10 - 2 
field2 20 - 2 

也許我需要做2每個字段的查詢我需要計數?

SELECT field1, COUNT(*) FROM t1 GROUP BY field1 

感謝您的任何建議

回答

2

你確實需要兩個進行選擇,但你可以讓他們返回一個結果如下所示。請注意,您需要對第一個SELECT進行CAST,以使這些值與第二個SELECT中的文本字段兼容:

SELECT 'field1' AS FieldName, CAST(field1 AS CHAR) AS FieldValue, COUNT(*) AS Count 
    FROM table GROUP BY field1 
UNION ALL 
SELECT 'field2' AS FieldName, field2 AS FieldValue, COUNT(*) AS Count 
    FROM table GROUP BY field2 
+0

就這樣,感謝您的更正。 – 2011-01-11 14:41:22