简单SQL求助

[复制链接]
查看11 | 回复6 | 2008-4-7 19:47:40 | 显示全部楼层 |阅读模式
一个表 test
id user vote
001 k 7
001 y 8
002 k 9
003 k 10
现在想找出 每个user 的vote的最大值对应的那条记录。
输出是这样的
id user vote
003 k 10
001 y 8
带子查询的可以是:
select id, user,vote
from test t1
where vote =
(select max(vote)

from test t2

where t1.user = t2.user

group by user)

请问不用子查询怎么写这个SQL呢?
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
select id,user,max(vote) as vote from test a where user=a.user
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
楼上的, 很明显不对
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
select id,user,max(vote) as vote from test a where user=a.user and id.aid
明显不对???汗死
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
select id,user,max(vote) as vote from test a where user=a.user and ida.id
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
declare @a table(id char(10), [user] char(10), vote int)
insert into @a select
'001', 'k', 7 union all
select '001', 'y', 8 union all
select '002', 'k', 9 union all
select '003', 'k', 10
select * from @awhere vote in(select max(vote) from @a
group by [user]) order by vote desc
result:
id user vote
---------- ---------- -----------
003k
10
001y
8
(所影响的行数为 2 行)
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
可是你的sql里面有子查询啊 。
我的前提是不带子查询的前提下,这个sql怎么写。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行