这可能是我写过的最糟糕的标题!
我有一个表格,其条目与此相似:
1 ¦ ABC1 ¦ 21
2 ¦ DEF2 ¦ 43
3 ¦ DEF2 ¦ 44
4 ¦ XYZ9 ¦ 18
5 ¦ ABC1 ¦ 19
我正试图在MySQL中发表一条只返回的声明:
ABC1 ¦ 19
XYZ9 ¦ 18
DEF2 ¦ 44
...所以每个唯一代码的最新个人总数。我是该语言的新手,无法破解语法!
希望这有意义,但请随时提出任何澄清问题(当然!)。
非常感谢,
乔恩
答案 0 :(得分:2)
假设表格包含id
列,name
,count
SELECT * FROM <tablename>
WHERE id IN (SELECT MAX(id) FROM <tablename> GROUP BY name)
答案 1 :(得分:2)
mysql中有一个技巧就是:
select code, num
from (select * from mytable
order by id desc) x
group by code;
虽然这不是对其他RDBMS的有效查询,但在mysql中,如果没有聚合其他列,则返回遇到的第一个行(因此内部顺序将获取最先排序的行)
与使用复杂子查询的传统查询不同,这将表现得非常好。
答案 2 :(得分:1)
试试这个:
select *
from <table> t
join (
select max(col1) as col1 ,col2
from <table>
group by col2)a
on t.col1=a.col1