2011-01-11 8 views
0

私は複雑なクエリを必要とする:SQLは個数が異なる合計行をカウントしますか?

は、このテーブルを考えてみましょう:

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

私はフィールド1とフィールド2でグループ化された総レコードをカウントし、クエリを必要としています。私はこの結果が必要であることを意味します:

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

多分私はカウントを必要とする2つのクエリを行う必要がありますか?

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

?任意の提案

答えて

2

ため

おかげで次の2つの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

ちょうど、ありがとう、訂正のために、最初のSELECTをCASTする必要があることに注意してください。 –

関連する問題