【问题标题】:SQL sum of all unique values per date每个日期所有唯一值的 SQL 总和
【发布时间】:2014-08-29 11:42:57
【问题描述】:

所以这将是我的第一次询问,哇!

我正在尝试根据相应的日期代码在列中组合类似的值。所以对于日期 5213,使用下面的示例表,我想返回给定事件的所有可能组合的总和。

示例表:

╔══════╦═════════╦═════════╦═════════╗ ║ 日期 ║ 活动 1 ║ 活动 2 ║ 活动 3 ║ ╠══════╬═════════╬═════════╬═════════╣ ║ 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 ║ ╚══════╩═════════╩═════════╩═════════╝

我想看到的回报:

╔══════╦══════════════╦════════════════╗ ║ 日期 ║ Comb_Event ║ Count_of_Event ║ ╠══════╬══════════════╬════════════════╣ ║ 5213 ║ 王牌 ║ 1 ║ ║ 5213 ║ 艾德 ║ 1 ║ ║ 5212 ║ ADF ║ 2 ║ ║ 5212 ║ ACF ║ 1 ║ ║ 5212 ║ BDF ║ 2 ║ ╚══════╩══════════════╩════════════════╝

我不确定如何连接值以及如何在单独的列中计算所述值。任何方向将不胜感激。

谢谢!

【问题讨论】:

  • mysql、sqlserver是哪个RDBMS?
  • -1 表示没有研究工作;没有平台
  • 对不起,先看看这个。我在 sqlserver 工作。

标签: sql count concatenation return-value


【解决方案1】:

这应该适用于 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)

这是DEMO

【讨论】:

  • 感谢 rhealitycheck,这帮助很大。
【解决方案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;

【讨论】:

  • 非常彻底 - 我会牢记这一点,继续前进。有了这个我就能解决我的困境!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2021-03-05
相关资源
最近更新 更多