繁体   English   中英

当由另一列分组时,MSSQL分配非空值

[英]Msssql assign non null value when grouped by another column

我有以下txn_table表:

Code      Category      Date    TicketRevenue  SnackRevenue  BeverageRevenue
A11       AA            8/14        100             80             60
AT201     BB            8/19        300             150            100
AT201     NULL          8/19        50              50             40 

我想获取数据,以便显示按column:code分组的Revenue列的总和。 如果类别列在具有相同code的行之一中为NULL(例如,类别在2个AT201条目中有所不同),我希望在该位置分配一个BB(非空)值。 对于每个代码,类别只能具有两个可能的值,即Non-NULL和Null Value。

布局示例:

Code      Category      Date    TicketRevenue  SnackRevenue  BeverageRevenue
AMC       AA            8/14        100             80             60
AT201     BB            8/19        350             200           140

我知道如何在不区分大小写时添加空值,但是有可能在那里获取非空值吗?

select Code, if(count(distinct Category)=1, Category, NULL), Date,sum(TicketRevenue),sum(SnackRevenue), sum(BeverageRevenue)
from txn_table
group by Code

参考: 值和查询已从此问题中借用

您可以使用max (或min ),它从给定的列或表达式返回最大非空值。

select Code,
    max(Category),
    date,
    sum(TicketRevenue),
    sum(SnackRevenue),
    sum(BeverageRevenue)
from txn_table
group by Code

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM