连续比较两个值

时间:2020-06-15 08:30:27

标签: mysql sql join group-by pivot

requestSpec.addMultiPart(new MultiPartSpecBuilder(note).controlName("note").charset(Charsets.UTF_8).build());

Ergebnis:

enter image description here

现在我只需要第一行“ first_name” =“ Eins”,因为“ yes”等于“ no”。 我怎样才能做到这一点statemant? 是=否...不起作用。

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

我将查询表述为:

select 
    ev.id as event_slot_id, 
    u.first_name, 
    u.id AS user_id,
    sum(next_round = 1) AS yes,
    sum(next_round = 2) AS no
from event_slots as ev
inner join audition_card_values as acv 
    on acv.user_id = ev.selected_by_user_id 
left join users as u 
    on u.id = ev.selected_by_user_id 
where e.event_id = 1
group by ev.id, u.first_name, u.id
having sum(next_round = 1) = sum(next_round = 2)

理论上:

  • sum()中的条件表达式可以简化

  • 您可以使用having子句进行过滤; MySQL还支持重用select子句的having子句中定义的别名,因此您可以这样拼写:having yes = no-但我更喜欢重复条件表达式,因为这是标准SQL

  • left join上的audition_card_values之后,在连接列上的where ... is not null可以重写为简单的inner join

  • 我修复了您的group by子句; select子句中的每个未聚合列都必须出现在group by子句中