use*_*521 0 mysql greatest-n-per-group
SELECT
MAX('time'), c_id, message, state, time
FROM message
WHERE receive = 1
GROUP BY c_id
Run Code Online (Sandbox Code Playgroud)
我有一个mysql查询,我尝试选择每个组的最后一行,但它不起作用.
c_id是该组.它现在选择每个组的第一行.
Joh*_*Woo 11
首先,您不应该使用单引号转义列名,因为它不是字符串文字.
其次,您可以执行子查询,分别获取每个的最新时间,c_id并将其与原始表连接回来以获取其他列.
SELECT a.*
FROM message a
INNER JOIN
(
SELECT c_id, MAX(time) time
FROM message
GROUP BY c_id
) b ON a.c_id = b.c_id AND
a.time = b.time
Run Code Online (Sandbox Code Playgroud)
要么
SELECT a.*
FROM message a
WHERE a.time =
(
SELECT MAX(time) time
FROM message b
WHERE a.c_id = b.c_id
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10431 次 |
| 最近记录: |