mysql计数(SUM CASE)与同一个表上的连接

时间:2018-02-27 12:54:17

标签: mysql sql join count

我有一个查询,我需要比较同一个表中的2行(不是连续的),其中一个的id必须小于另一个,并且字段的名称必须等于特定的值。 如果我不包括连接,我可以提取数据但是当我尝试加入数据时,我得到'列e1未知'。我假设它与计数有关,但我似乎无法解决它。有什么想法吗?

SELECT 
case 
when ( extract( HOUR FROM e1.created_at) = 0 ) then '12am'
when ( extract( HOUR FROM e1.created_at) < 12) then concat(extract(HOUR FROM e1.created_at), 'am') 
when ( extract( HOUR FROM e1.created_at) = 12) then '12pm'
when ( extract( HOUR FROM e1.created_at) > 12) then concat( ( extract(HOUR FROM e1.created_at) -12 ), 'pm') 
end  AS "Time", 
sum(case when e1.result = “result1" and e2.result =“result2" and e1 < e2 then 1 else 0 end) AS ‘My Result'
from event e1 
join event e2 on e2.secondary_id = e1.secondary_id
where e1.started_at > '2018-02-19 00:00:00' and e1.started_at < '2018-02-20 00:00:00'
group by extract(hour from e1.created_at)

1 个答案:

答案 0 :(得分:3)

由于TESTe1表别名,因此e2表达式不正确:

CASE

您需要指定要比较的e1 < e2 表格中的哪些字段。假设您正在比较时间戳,event表达式应如下所示:

sum