有 V2 大佬指导一条 sql 语句怎么写吗?

2020-04-18 11:46:21 +08:00
 cobainlu
有一组数据

| id | context(内容) | time(修改次数) | bizNo(流水号) | bizNo_Key(主流水号) |
| ---- | ------------- | -------------- | ------------- | ------------------- |
| 1 | 略 | 0 | 1 | 1 |
| 2 | 略 | 0 | 2 | 2 |
| 3 | 略 | 1 | 3 | 2 |
| 4 | 略 | 1 | 4 | 1 |
| 5 | 略 | 2 | 5 | 1 |

想要查询得到这样的一组数据,已 bizNo_key 分组,获取每一组里面修改次数最多的那条数据,希望大佬们给点思路.

| id | context(内容) | time(修改次数) | bizNo(流水号) | bizNo_Key(主流水号) |
| ---- | ------------- | -------------- | ------------- | ------------------- |
| 3 | 略 | 1 | 3 | 2 |
| 5 | 略 | 2 | 5 | 1 |
2293 次点击
所在节点    数据库
14 条回复
Godykc
2020-04-18 12:23:01 +08:00
关键词 OVER PARTITION BY,然后根据你用的数据库类型自己写着试试,不难的
gochat
2020-04-18 12:25:57 +08:00
```sql
select *
from ttt as a
left join(
select max(time) as m, bizNo_key
from ttt
group by bizNo_key
) as b on (a.bizNo_key = b.bizNo_key and a.time = b.m);
```
多试试
Yourshell
2020-04-18 12:30:01 +08:00
同是萌新,难道不是 max+group by 吗
cobainlu
2020-04-18 12:52:05 +08:00
cobainlu
2020-04-18 12:53:47 +08:00
@Godykc
@gochat
感谢大佬,我去研究一下
cobainlu
2020-04-18 12:54:13 +08:00
@Yourshell select max 的话不能取到所有数据呀
FanGanXS
2020-04-18 13:09:05 +08:00
SELECT
id,context,MAX(time),bizNo,bizNo_Key
FROM
table_name
GOURP BY
bizNo_Key
vindac
2020-04-18 16:12:24 +08:00
SELECT * FROM( SELECT id, @rank := IF (@perNO = bizNo_Key, @rank + 1, 1) AS rank, @perNO = bizNo_Key FROM tbl ORDER BY bizNo_Key, time DESC) t WHERE t.rank = 1
vindac
2020-04-18 16:14:49 +08:00
@vindac 不好意思,不小心 at 到了各位
MOONYANYI
2020-04-18 17:13:33 +08:00
踏实的就是 left join,简洁的就用窗口函数
liubian
2020-04-18 20:14:23 +08:00
SELECT * FROM (SELECT id,context,time,bizNo,bizNo_Key FROM table_name ORDER BY time DESC) t GROUP BY bizNo_Key
forrestgump
2020-04-19 13:00:00 +08:00
@FanGanXS 你这个是认真的吗,group by 还能查询非聚合字段以外的非排序字段?
ackoly
2020-04-19 19:50:25 +08:00
名称数据库的语法不同,建议提问带上数据库名称和版本
FanGanXS
2020-04-20 18:23:08 +08:00
@forrestgump Oracle 还真可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX