概念的には、フルーツアイテムのリストを持つテーブルがあります。私は単一のクエリで、リンゴ、オレンジ、リンゴ、オレンジの数、および他の果実の数を調べることを望みます。「A」、「B」、「AまたはB」のT-SQLの数値
これをT-SQLでどうすれば実現できますか?
概念的には、フルーツアイテムのリストを持つテーブルがあります。私は単一のクエリで、リンゴ、オレンジ、リンゴ、オレンジの数、および他の果実の数を調べることを望みます。「A」、「B」、「AまたはB」のT-SQLの数値
これをT-SQLでどうすれば実現できますか?
SELECT
COUNT(*) AS Allfruits,
COUNT(CASE WHEN fruit = 'Apple' THEN 1 END) AS AppleCount,
COUNT(CASE WHEN fruit = 'Orange' THEN 1 END) AS OrangeCount,
COUNT(CASE WHEN fruit IN ('Apple','Orange') THEN 1 END) AS AppleOrOrangeCount,
COUNT(*) - COUNT(CASE WHEN fruit IN ('Apple','Orange') THEN 1 END) AS OtherFruitCount
FROM
MyTable
注:CASEは、ELSE節または明示的な条件なしでNULLを返します。 COUNTはNULLを無視します。
例として、あなたのタイトルと説明は、「リンゴやオレンジ」のような単一の値を持つ行を持つ可能性があることを暗示しています... @ gbnの回答に基づいて、あなたが言ったことは、それぞれの行は 'リンゴ'や 'オレンジ'や 'キウイ'のような特異な値を持つでしょう... –
@AaronBertrandデータの概念はあまりにも多くの説明を取っていました。私はあなたの意見を得るが、果物は普遍的であり、効果的に答えられた。 – Craig
@AaronBertrand前回の質問を見ると、答えがついていないもののほとんどすべてが正しく答えられていませんでした。 – Craig