-1

私は何年も前からやろうとしてきましたが、できないようです。それは次のとおりです。

列 x の値の数を選択します。ここで、columnfoo = y

4

3 に答える 3

1

集計関数内で式を使用CASEして、条件に基づいてのみ集計できます。

SELECT COUNT(CASE WHEN columnfoo = 'y' THEN 1 END) AS y_count
FROM   tbl

columnfoo =yの場合、行をカウントに因数分解します。それ以外の場合は、カウントに追加しないでください。

これによりWHERE、columnfooが異なるレコードも処理する場合に備えて、句内のレコードを除外する必要がなくなりますy

例:同時にさまざまな条件に基づいてカウントできます。

SELECT COUNT(CASE WHEN columnfoo = 'y' THEN 1 END) AS y_count,
       COUNT(CASE WHEN columnfoo = 'x' THEN 1 END) AS x_count,
       COUNT(CASE WHEN columnfoo = 'z' THEN 1 END) AS z_count
--     etc..
FROM   tbl
于 2012-08-01T18:56:04.020 に答える
1

これを試して:

SELECT COUNT(DISTINCT x) 
FROM table
WHERE columnfoo = y

...またはより一般的には、

SELECT columnfoo, COUNT(DISTINCT x) 
FROM table
GROUP BY columnfoo
于 2012-08-01T17:57:52.410 に答える
0
SELECT x, COUNT(x) FROM TABLE_NAME WHERE columnfoo = y GROUP BY x
于 2012-08-01T17:58:40.837 に答える