相关疑难解决方法(0)

获取具有列的最大值的行

表:

UserId, Value, Date.
Run Code Online (Sandbox Code Playgroud)

我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)

更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.

sql oracle greatest-n-per-group

556
推荐指数
10
解决办法
56万
查看次数

GROUP BY with MAX(DATE)

我正在尝试列出表格中每列火车的最新目的地(最近出发时间),例如:

Train    Dest      Time
1        HK        10:00
1        SH        12:00
1        SZ        14:00
2        HK        13:00
2        SH        09:00
2        SZ        07:00
Run Code Online (Sandbox Code Playgroud)

期望的结果应该是:

Train    Dest      Time
1        SZ        14:00
2        HK        13:00
Run Code Online (Sandbox Code Playgroud)

我试过用

SELECT Train, Dest, MAX(Time)
FROM TrainTable
GROUP BY Train
Run Code Online (Sandbox Code Playgroud)

我得到了一个"ora-00979不是GROUP BY表达式"错误,说我必须在我的分组中包含'Dest'语句.但肯定不是我想要的......

是否可以在一行SQL中执行此操作?

sql oracle group-by greatest-n-per-group ora-00979

140
推荐指数
6
解决办法
31万
查看次数

Oracle SQL查询:根据时间检索每个组的最新值

我在Oracle DB中有下表

id     date              quantity
1      2010-01-04 11:00  152
2      2010-01-04 11:00  210
1      2010-01-04 10:45  132
2      2010-01-04 10:45  318
4      2010-01-04 10:45  122
1      2010-01-04 10:30  1
3      2010-01-04 10:30  214
2      2010-01-04 10:30  5515
4      2010-01-04 10:30  210
Run Code Online (Sandbox Code Playgroud)

现在我想检索每个id的最新值(及其时间).示例输出:

id     date              quantity
1      2010-01-04 11:00  152
2      2010-01-04 11:00  210
3      2010-01-04 10:30  214
4      2010-01-04 10:45  122
Run Code Online (Sandbox Code Playgroud)

我只是无法弄清楚如何将它放入查询......

此外,以下选项会很好:

选项1:查询应仅返回最后XX分钟的值.

选项2:id应与另一个具有id和idname的表中的文本连接.id的输出应该是:id-idname(例如1-testid1).

非常感谢您的帮助!

sql oracle top-n greatest-n-per-group

15
推荐指数
2
解决办法
3万
查看次数

获得每个组的最佳结果(在Oracle中)

如何在oracle查询中获得几个组的N个结果.

例如,给出下表:

|--------+------------+------------|
| emp_id | name       | occupation |
|--------+------------+------------|
|      1 | John Smith | Accountant |
|      2 | Jane Doe   | Engineer   |
|      3 | Jack Black | Funnyman   |
|--------+------------+------------|
Run Code Online (Sandbox Code Playgroud)

还有更多行占用更多.我想从每个职业中找到三名员工(比方说).

有没有办法在不使用子查询的情况下执行此操作?

sql oracle greatest-n-per-group

12
推荐指数
2
解决办法
7万
查看次数

标签 统计

greatest-n-per-group ×4

oracle ×4

sql ×4

group-by ×1

ora-00979 ×1

top-n ×1