表:
UserId, Value, Date.
Run Code Online (Sandbox Code Playgroud)
我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)
更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.
我正在尝试列出表格中每列火车的最新目的地(最近出发时间),例如:
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中执行此操作?
我在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).
非常感谢您的帮助!
如何在oracle查询中获得几个组的N个结果.
例如,给出下表:
|--------+------------+------------|
| emp_id | name | occupation |
|--------+------------+------------|
| 1 | John Smith | Accountant |
| 2 | Jane Doe | Engineer |
| 3 | Jack Black | Funnyman |
|--------+------------+------------|
Run Code Online (Sandbox Code Playgroud)
还有更多行占用更多.我想从每个职业中找到三名员工(比方说).
有没有办法在不使用子查询的情况下执行此操作?