gpt4 book ai didi

MySql GROUP BY 最大日期

转载 作者:行者123 更新时间:2023-11-29 01:49:47 25 4
gpt4 key购买 nike

我有一个名为 votes 的表,其中包含 4 列:idnamechoice日期

****id****name****vote******date ***
****1*****sam*******A******01 -01-17
****2*****sam*******B******01 -05-30
****3*****jon*******A******01 -01-19

我的最终目标是计算所有的选票,但我只想计算每人 1 票,特别是每个人最近的一票。

在上面的例子中,结果应该是 A 投 1 票,B 投 1 票。

这是我目前拥有的:

select name,
sum(case when uniques.choice = A then 1 else 0 end) votesA,
sum(case when uniques.choice = B then 1 else 0 end) votesB
FROM (
SELECT id, name, choice, max(date)
FROM votes
GROUP BY name
) uniques;

但是,这不起作用,因为子查询确实选择了最大日期,但它不包括与该最大日期关联的正确 choice

最佳答案

不要认为“group by”可以获得最近的投票。考虑加入或其他一些选择。这是一种方法:

SELECT v.name,
SUM(v.choice = 'A') as votesA,
SUM(v.choice = 'B') as votesB
FROM votes v
WHERE v.date = (SELECT MAX(v2.date) FROM votes v2 WHERE v2.name = v.name)
GROUP BY v.name;

Here是一个 SQL fiddle 。

关于MySql GROUP BY 最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49397242/

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