sql中,如果聚合函数中存在特定代码,则包含附加列

wi3ka0sx  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(369)

我希望在查询中包含一个附加列,这将是一个简单的位类型列-yes或no。目前,它使用count提取某个日期范围内的销售及其唯一的saleid,以及该销售范围内的项目数。我想做的是有下一栏说,如果这个销售包括一个特定的项目(使用它的项目代码)。
理想情况下,输出为:;

[SALE DATE] / [COUNT(Items)] / [Item #111 Included?]
29/07/2020 / 54 / No
28/07/2020 / 21 / No
28/07/2020 / 43 / Yes
27/07/2020 / 8 / No

我试过使用case,但它只是强迫我按itemid分组。任何人都有任何的指针,如果这是可能的,如果是-我需要用什么函数来实现这一点。干杯。

cs7cruho

cs7cruho1#

我怀疑你想要条件聚合。我会把计数放在:

select sale_date, count(*),
       sum(case when item = 111 then 1 else 0 end) as cnt_111
from t
group by sale_date;

通过改变 sum()max() 您可以获得0/1标志:

select sale_date, count(*),
       max(case when item = 111 then 1 else 0 end) as flag_111
from t
group by sale_date;

如果你想要这个 'yes' , 'no' ,然后:

select sale_date, count(*),
       max(case when item = 111 then 'yes' else 'no' end) as flag_yn_111
from t
group by sale_date;

相关问题