gpt4 book ai didi

mysql - 在同一个 mysql 表上使用内连接从 select 获取数据

转载 作者:行者123 更新时间:2023-11-29 18:24:19 26 4
gpt4 key购买 nike

这是我的案例表

id empid    reaction         date_t
1 emp109 interested 2017-09-12
2 emp109 not_interested 2017-09-13
3 emp109 maybe 2017-09-13

我想要实现的是针对特定员工 ID

date_t  | number of interested  |number of not interested   | number of maybe

就像 2017-09-12 和 2017-09-13 的员工 ID emp109 一样,表格将如下所示

 date_t     | number of interested  |number of not interested   | maybe
2017-09-12 1 0 0
2017-09-13 0 1 1

这是我迄今为止尝试过的

SELECT * FROM
(SELECT cases.date_t, cases.empid,COUNT(cases.reaction) as interested FROM `cases` WHERE cases.reaction="interested" and cases.empid="EMP12654" GROUP by cases.date_t)alpha
JOIN
(SELECT cases.date_t, cases.empid,COUNT(cases.reaction) as not_interested FROM `cases` WHERE cases.reaction="not_interested" and cases.empid="EMP12654" GROUP by cases.date_t)beta
on alpha.date_t=beta.date_t
JOIN
(SELECT cases.date_t, cases.empid,COUNT(cases.reaction) as maybe FROM `cases` WHERE cases.reaction="maybe" and cases.empid="EMP12654" GROUP by cases.date_t)zeta
on alpha.date_t=zeta.date_t

这并没有给我想要的结果,我不知道如何实现它?

最佳答案

这称为旋转。

您可以使用条件聚合在 MySQL 中执行此操作:

select date_t,
sum(reaction = 'interested') as interested,
sum(reaction = 'not_interested') as not_interested,
sum(reaction = 'maybe') as maybe
from your_table
group by date_t;

上面使用了 MySQL 将 true 视为 1,将 false 视为 0 的事实。

关于mysql - 在同一个 mysql 表上使用内连接从 select 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46313491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com