gpt4 book ai didi

mysql - 选择从 1 列计数到 2 列

转载 作者:行者123 更新时间:2023-11-29 05:31:22 25 4
gpt4 key购买 nike

我有一个表,其中有一个名为 type 的列,它包含两个单词之一 upvotedownvote 我想按 a 分组。 question_id 然后得到 2 列,每列都有一个计数。

select a.*, u.* from answers a
left join users u using(user_id)
left join vote_history v using(answer_id)
where a.question_id = 4 and deleted < 4
group by v.question_id
order by votes desc

示例选择

ColumnA  | ColumnB  | upvotes | downvotes
---------+----------+---------+----------
record1A | record2B | 3 | 2
record2A | record2B | 2 | 5

我是否可以在不执行多个查询且不执行子查询的情况下执行此操作?

最佳答案

这称为枢轴。在 MySQL 中,您可以使用带有 CASE 表达式的聚合函数将数据转换为列:

select a.*, u.*,
SUM(case when v.type='upvote' then 1 else 0 end) Upvotes,
SUM(case when v.type='downvote' then 1 else 0 end) Downvotes,
from answers a
left join users u using(user_id)
left join vote_history v using(answer_id)
where a.question_id = 4 and deleted < 4
group by v.question_id
order by votes desc

关于mysql - 选择从 1 列计数到 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14387582/

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