2017-06-14 5 views
0

私は非常に大きなテーブルを持っており、製品とイベントタイプの日々の記録を示しています。私は以下の質問がどのように書かれているかを並べ替えていますが、ケースステートメントが必要な出力を私に供給すると思っていました。CASE文が必要な回答を提供していません

TABLE_1:

DATES  PRODUCT EVENT 
5/20/2017 APPLE SALE 
5/21/2017 APPLE SALE 
5/22/2017 APPLE SALE 
5/23/2017 APPLE SALE 
5/24/2017 APPLE SALE 
5/25/2017 APPLE SALE 
5/26/2017 APPLE SALE 
5/27/2017 APPLE FULL PRICE 
5/28/2017 APPLE FULL PRICE 
5/29/2017 APPLE FULL PRICE 
5/30/2017 APPLE FULL PRICE 
5/31/2017 APPLE FULL PRICE 
6/1/2017 APPLE FULL PRICE 
6/2/2017 APPLE FULL PRICE 
6/3/2017 APPLE FULL PRICE 
6/4/2017 APPLE FULL PRICE 
6/5/2017 APPLE FULL PRICE 
6/6/2017 APPLE FULL PRICE 
6/7/2017 APPLE LIQUIDATION 
6/8/2017 APPLE LIQUIDATION 
6/9/2017 APPLE LIQUIDATION 
6/10/2017 APPLE LIQUIDATION 
6/11/2017 APPLE LIQUIDATION 
6/12/2017 APPLE LIQUIDATION 
6/13/2017 APPLE LIQUIDATION 
6/14/2017 APPLE LIQUIDATION 
5/20/2017 BANANA SALE 
5/21/2017 BANANA SALE 
5/22/2017 BANANA SALE 
5/23/2017 BANANA SALE 
5/24/2017 BANANA SALE 
5/25/2017 BANANA SALE 
5/26/2017 BANANA SALE 
5/27/2017 BANANA SALE 
5/28/2017 BANANA SALE 
5/29/2017 BANANA SALE 
5/30/2017 BANANA FULL PRICE 
5/31/2017 BANANA FULL PRICE 
6/1/2017 BANANA FULL PRICE 
6/2/2017 BANANA FULL PRICE 
6/3/2017 BANANA FULL PRICE 
6/4/2017 BANANA FULL PRICE 
6/5/2017 BANANA FULL PRICE 
6/6/2017 BANANA FULL PRICE 
6/7/2017 BANANA FULL PRICE 
6/8/2017 BANANA FULL PRICE 
6/9/2017 BANANA FULL PRICE 
6/10/2017 BANANA FULL PRICE 
6/11/2017 BANANA FULL PRICE 
6/12/2017 BANANA FULL PRICE 
6/13/2017 BANANA FULL PRICE 
6/14/2017 BANANA FULL PRICE 

現在のクエリ:

select 
    product, 
    case when event in ('liquidation') then 'yes' else 'no' end LIQ, 
    count(dates) as days 
FROM TABLE_1 
where dates between '5/20/2017' and '6/14/2017' 
group by 
    product 

それが日付範囲に清算にあった場合、私は製品によって単一のレコードをしたいとはい/いいえ。このクエリは実行されますが、次のような結果が得られます。

PRODUCT LIQ   DAYS 
APPLE  NO   18 
APPLE  YES   8 
BANANA NO   26 

製品は日付2017年5月20日と2017年6月14日の間の清算にあった場合、私は、単純なyesまたはnoを探しています。ここが私が探しているものです:

PRODUCT LIQ  DAYS 
APPLE  YES   26 
BANANA  NO   26 

ありがとう!

答えて

1

以下は「いいえ」「はい」>「はい」と「いいえ」というのプロパティを使用しています。魔法のように

select product, 
     max(case when event in ('liquidation') then 'yes' else 'no' end) as LIQ, 
     count(dates) as days 
from TABLE_1 
where dates between '2017-05-20' and '2017-06-14' 
group by product; 
+0

作品を、ありがとうございました! – Hery0502

関連する問題