[英]SQL sum of all unique values per date
所以这将是我的第一个询问,宇!
我试图在每个相应的日期代码的列中组合类似的值。 因此对于日期5213,使用下面的示例表,我想返回给定事件的所有可能组合的总和。
表格示例:
╔══════╦═════════╦═════════╦═════════╗ ║ Date ║ Event1 ║ Event2 ║ Event3 ║ ╠══════╬═════════╬═════════╬═════════╣ ║ 5213 ║ A ║ C ║ E ║ ║ 5213 ║ A ║ D ║ E ║ ║ 5212 ║ A ║ D ║ F ║ ║ 5212 ║ A ║ C ║ F ║ ║ 5212 ║ B ║ D ║ F ║ ║ 5212 ║ A ║ D ║ F ║ ║ 5212 ║ B ║ D ║ F ║ ╚══════╩═════════╩═════════╩═════════╝
我希望看到的回报:
╔══════╦══════════════╦════════════════╗ ║ Date ║ Comb_Event ║ Count_of_Event ║ ╠══════╬══════════════╬════════════════╣ ║ 5213 ║ ACE ║ 1 ║ ║ 5213 ║ ADE ║ 1 ║ ║ 5212 ║ ADF ║ 2 ║ ║ 5212 ║ ACF ║ 1 ║ ║ 5212 ║ BDF ║ 2 ║ ╚══════╩══════════════╩════════════════╝
我不确定如何连接值,以及如何在单独的列中计算所述值。 任何方向将不胜感激。
谢谢!
组合值的方式取决于数据库。 那是问题的唯一棘手的部分,否则就是基本的SQL。 这是使用标准concat()
函数的示例:
select date, concat(event1, event2, event3) as comb_event, count(*)
from example
group by date, concat(event1, event2, event3)
order by date, concat(event1, event2, event3);
取决于数据库,语法可能是:
select date, event1 || event2 || event3 as comb_event, count(*)
from example
group by date, event1 || event2 || event3
order by date, event1 || event2 || event3;
要么:
select date, event1 + event2 + event3 as comb_event, count(*)
from example
group by date, event1 + event2 + event3
order by date, event1 + event2 + event3;
或事件:
select date, event1 & event2 & event3 as comb_event, count(*)
from example
group by date, event1 & event2 & event3
order by date, event1 & event2 & event3;
这对SQL Server和MySQL均适用:
select count(*) as count_of_events, dates
,concat(event1, event2, event3) as comb_event
from test
group by dates, concat(event1, event2, event3)
这是一个演示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.