能否用SQL语句实现"分组查询后,取各小组最上面一条记录"? 15

如:公司ID人才ID时间GS1RC12006-6-13GS1RC12006-6-25GS2RC12006-6-13GS2RC12006-6-25如何用纯粹SQL语句实现,... 如:
公司ID 人才ID 时间
GS1 RC1 2006-6-13
GS1 RC1 2006-6-25
GS2 RC1 2006-6-13
GS2 RC1 2006-6-25

如何用纯粹SQL语句实现,只得到每个公司的最新入职的人才记录?
即:
GS1 RC1 2006-6-13
GS2 RC1 2006-6-13

务请不吝赐教.
补充说明:非常感谢computer_kill的回答,
首先承认我的一个错误,最新的记录其实应该是
GS1 RC1 2006-6-25
GS2 RC1 2006-6-25
其次,你的方法,我已经试过N次,都不行,原因是:
我想得到最新记录的所有字段,但是象你说的用" SELECT TOP 1 * "配合"group by"是不行的,不知道你试过没,结果都提示"该列不包含在聚合函数中也不包含在Group by中".
展开
 我来答
Sharon_QQ
2006-07-05 · TA获得超过492个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:371万
展开全部
SELECT 公司ID, 人才ID, 时间
FROM TABLE
WHERE 时间 = (SELECT MAX(A.时间) FROM TABLE A WHERE A.公司ID= B.公司ID)
上面可以得到每个公司最新入职的人才的记录,如果这个公司最新入职的有多个人同样也可以查出来。
百度网友8a8090a63e7
2006-06-26 · TA获得超过155个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:314万
展开全部
SELECT TOP 1 * FROM 表名 group by 公司ID ORDER BY 时间 desc
注意只得到每个公司的最新入职的人才记录,一定要在时间上降序排列
否则你说是GS1 RC1 2006-6-25 新那 GS1 RC1 2006-6-13 还是新?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qqsql
2006-06-27
知道答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
公司 人才 时间
a b c
表名T

select t1.a,t.b,t1.c from (select a,max(c) as c from t group by a) t1 inner join t on t1.a=t.a and t1.c=t.c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式