CASE 语句未提供所需的答案
CASE statement not providing needed answer
我有一个非常大的 table 显示产品和事件类型的每日记录。我愿意重新安排下面查询的编写方式,但认为 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
我想要一个产品记录,yes/no 如果它在日期范围内处于清算状态。此查询执行,但给出以下结果:
PRODUCT LIQ DAYS
APPLE NO 18
APPLE YES 8
BANANA NO 26
如果产品在 2017 年 5 月 20 日和 2017 年 6 月 14 日之间清算,我正在寻找一个简单的是或否。这是我要找的东西:
PRODUCT LIQ DAYS
APPLE YES 26
BANANA NO 26
谢谢!
下面使用"yes"的属性和"no"即"yes">"no":
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;
我有一个非常大的 table 显示产品和事件类型的每日记录。我愿意重新安排下面查询的编写方式,但认为 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
我想要一个产品记录,yes/no 如果它在日期范围内处于清算状态。此查询执行,但给出以下结果:
PRODUCT LIQ DAYS
APPLE NO 18
APPLE YES 8
BANANA NO 26
如果产品在 2017 年 5 月 20 日和 2017 年 6 月 14 日之间清算,我正在寻找一个简单的是或否。这是我要找的东西:
PRODUCT LIQ DAYS
APPLE YES 26
BANANA NO 26
谢谢!
下面使用"yes"的属性和"no"即"yes">"no":
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;