SELECT * FROM `testyyy`.`DLLog` GROUP BY `proc` ORDER BY `logtime` DESC;
打算查询出 proc 为分组,logtime 最新(降序),但 logtime 是升序的,显示的是最早时间的,语法上是不能这样使用?
打算查询出 proc 为分组,logtime 最新(降序),但 logtime 是升序的,显示的是最早时间的,语法上是不能这样使用?
|
crazytudouMay 31, 2021
1
select * 用 group by ?没明白你想分啥组。。。
|
|
iyaozhenMay 31, 2021
2
只会显示 proc 组中 logtime 倒序后的第一条,并不是全部都按 logtime 倒序。你需要再加个查询排下序
|
|
setsunakuteMay 31, 2021
3
SELECT *,(select logtime from `testyyy`.`DLLog` as a where a.proc = b.proc order by logtime desc limit 1) FROM `testyyy`.`DLLog` as b GROUP BY `proc`;
那你应该是需要这样的效果 |
|
7Qi7QiMay 31, 2021
4
select proc, max(logtime) from `testyyy`.`DLLog` group by proc order by max(logtime) desc 这样?
|
|
justseemoreMay 31, 2021
5
😂 top k 问题?
|
|
GOXXXMay 31, 2021
6
3 搂正解
|
|
zhangysh1995May 31, 2021
7
考虑一下 window function,用 partition by proc 然后排序
|
|
lsheroMay 31, 2021
8
rank over partition
|
|
lichaoMay 31, 2021
9
这是 MySQL 比较坑的地方,严格的数据库这里应该报错
|
|
rockyliangMay 31, 2021
11
不是很懂你想怎样排序,是每个分组都留下 logtime 最新的那一行,然后整个结果集再按 logtime DESC 排序?
|
|
12
@setsunakute 我好像看懂了意思,只是这个要出结果要很久,我这里是 70 多秒才能出来。。。
@rockyliang 是的,每个分组留下 logtime 最新的那一行,然后按 logtime DESC 排序,人话就是:要看每个 proc,最后的 logtime 的整行全部列的内容(*)。。。 |
|
tame619May 31, 2021 via iPhone
13
|
|
tame619May 31, 2021 via iPhone
14
inner join
|
|
keepeyeMay 31, 2021
15
不要用 order by,select max(logtime)
|
|
tame619May 31, 2021 via iPhone
16
直接在 max 完,套一层 select,不用 join 我太蠢了
|
|
onhaoMay 31, 2021
17
https://wuhao.pw/archives/178/
当 group by 遇上 order by 后总感觉语句是对的,然而结果却... |
|
ricadroMay 31, 2021 via iPhone
18
mysql 没有开窗函数 只能子查询查询出最新的时间然后在 groupby
|
|
egfegdfrJun 1, 2021
19
group by 和 order by 不能同时使用,需要拆开放到子查询
|
|
lepigJun 1, 2021
21
好像 select*,max(logtime)就可以。之前做过一个类似的需求
|
|
zhaofqJun 1, 2021
22
TOP K 问题
8.0 版本直接用开窗函数 低版本用子查询 MySQL 不支持 order by 和 group by 同时使用实现组内排序 |