使用group by时,我在排序结果时遇到问题。它似乎显示数据库中的第一个条目,而不是组中的最新条目。
示例:
id(自动增量)|命名
1 |安妮
2 |詹姆斯
3 |安妮
4 |布拉德
正如你所看到的,我已经多次输入“anne”,这就是我使用该组的原因。然后我想它显示最近的“安妮”,这将是条目“3”。相反,它显示第一个“安妮”(1)
我的查询
“选择* FROM TABLE GROUP BY名称ORDER BY ID DESC
非常感谢任何帮助。
答案 0 :(得分:4)
问题在于你选择了所有字段(使用*很少是一个好主意)所以每一行都是唯一的,因此没有任何内容可以分组。
尝试:
SELECT
Name,
MAX(ID)
FROM
TABLE
GROUP BY
Name
答案 1 :(得分:2)
可能的解决方案:
SELECT id, name
FROM TABLE
WHERE id IN (SELECT MAX(id) FROM TABLE GROUP BY name)
答案 2 :(得分:0)
试试这个;它会起作用:
SELECT * FROM TABLE
INNER JOIN (SELECT MAX(id) AS id
FROM TABLE
group by name)
ids ON TABLE.id = ids.id
答案 3 :(得分:0)
尝试
SELECT DISTINCT name
FROM table
ORDER BY id DESC
答案 4 :(得分:0)
在已经提供的另一个anwer的基础上,这个SQL将避免使用GROUP BY Name:
SELECT
DISTINCT Name,
MAX(ID)
FROM
TABLE