我正在尝试创建一个查询,允许我选择如下所示的数据
id Counter_Type Champion_Name Counter_Lane
---|------------|------------|--------------
1 | 1 | Ahri | 1
2 | 1 | Ahri | 2
5 | 1 | Ahri | 2
3 | 1 | Ahri | 3
4 | 1 | Ahri | 2
6 | 1 | Teemo | 1
7 | 1 | Warwick | 4
8 | 1 | Warwick | 4
它应该对 Counter_Lane 进行计数,然后应该为该名称显示最多的 Counter_Type,如下所示,它应该如何显示数据:
id Counter_Type Champion_Name Counter_Lane
---|------------|------------|--------------
1 | 1 | Ahri | 2
2 | 1 | Teemo | 1
3 | 1 | Warwick | 4
我已经尝试了以下代码,这是我三个多小时以来最接近的代码,所以请有人帮忙。
SELECT
a.Counter_Type, Champion_For, a.Counter_Lane, a.Champion_Name, COUNT(*) as Amount, sum(vote_type = 'up') as Upvotes, sum(vote_type = 'down') as Downvotes, sum(vote_type = 'up')-sum(vote_type = 'down') as Totalvotes
FROM Champion_Counters_Data a
JOIN ( SELECT c.Counter_Lane, c.Champion_Name, COUNT(*) magnitude
FROM Champion_Counters_Data c
WHERE
Champion_For = "Aatrox" AND Counter_Type = 1 GROUP BY Champion_Name, Counter_Lane ORDER BY magnitude) b ON a.Champion_Name = b.Champion_Name AND b.Counter_Lane = a.Counter_Lane
GROUP BY Champion_Name
最佳答案
SELECT * FROM your_table GROUP BY MAX(Counter_Lane)
此查询基于您想要从给定的表中获得的输出。
关于Mysql 选择并计算具有多个相同值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44425592/