我的表是:
id home datetime player resource
---|-----|------------|--------|---------
1 | 10 | 04/03/2009 | john | 399
2 | 11 | 04/03/2009 | juliet | 244
5 | 12 | 04/03/2009 | borat | 555
3 | 10 | 03/03/2009 | john | 300
4 | 11 | 03/03/2009 | juliet | 200
6 | 12 | 03/03/2009 | borat | 500
7 | 13 | 24/12/2008 | borat | 600
8 | 13 | 01/01/2009 | borat | 700
Run Code Online (Sandbox Code Playgroud)
我需要选择每个不同的 …
表:
UserId, Value, Date.
Run Code Online (Sandbox Code Playgroud)
我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)
更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.
使用SQL Server,我有......
ID SKU PRODUCT
=======================
1 FOO-23 Orange
2 BAR-23 Orange
3 FOO-24 Apple
4 FOO-25 Orange
Run Code Online (Sandbox Code Playgroud)
我想要
1 FOO-23 Orange
3 FOO-24 Apple
Run Code Online (Sandbox Code Playgroud)
这个问题不是让我在那里.如何在一列上选择DISTINCT?
SELECT
[ID],[SKU],[PRODUCT]
FROM [TestData]
WHERE ([PRODUCT] =
(SELECT DISTINCT [PRODUCT] FROM [TestData] WHERE ([SKU] LIKE 'FOO-%'))
ORDER BY [ID]
Run Code Online (Sandbox Code Playgroud) 使用Hibernate的Criteria,我想执行相当于:
select distinct uspscity, state from citycomplete where USPSCITY = 'HOUSTON'
Run Code Online (Sandbox Code Playgroud)
我认为做以下操作会产生我想要的结果:
ProjectionList projList = new ProjectionList();
projList.add(Projections.distinct(Projections.property("id.state")));
projList.add(Projections.distinct(Projections.property("id.uspsCity")));
criteria.setProjection(projList);
Run Code Online (Sandbox Code Playgroud)
但是,这实际上做的是执行类似的事情:
select distinct uspscity, distinct state from citycomplete where USPSCITY = 'HOUSTON'
Run Code Online (Sandbox Code Playgroud)
显然,这会引发错误.
除了不使用Criteria之外,还有解决方案吗?
谢谢,
布兰登