求大神帮忙 SQL语句的

nowy525 2012-07-18 10:11:51
我的数据库里有一些数据,但是列vcContent中有重复的,但每个事件都有对应的不同的完成度vcCompletePercent,例如30%、40%、50%,我想用SQL语句按照事件选出完成度最大的数据,按照事件分,就是每个事件只选一条(最大的),选出的数据得是此事件的完整信息,就是包括其他的我没提到的列。。。
哪位大神可以给个SQL语句~~~
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjwz001 2012-07-18
  • 打赏
  • 举报
回复
如果是存储过程,可以用临时表,先将 group by 事件 的结果取出来,再关联,可以提高性能,如下:

DECLARE @t TABLE (
事件 varchar(100),
vcCompletePercent DECIMAL(5,2)
)

INSERT INTO @t (事件, vcCompletePercent)
SELECT 事件,max(vcCompletePercent) AS vcCompletePercent
FROM 表 group by 事件

SELECT * FROM 表 A,@t b WHERE A. 事件 = B.事件 AND A.vcCompletePercent = B.vcCompletePercent
zjwz001 2012-07-18
  • 打赏
  • 举报
回复

SELECT A.* FROM 表 A,
(
SELECT 事件,max(vcCompletePercent) AS vcCompletePercent
FROM 表 group by 事件
) B
WHERE A. 事件 = B.事件 AND A.vcCompletePercent = B.vcCompletePercent
lizhengdao1314 2012-07-18
  • 打赏
  • 举报
回复
select * from Table where 事件 in (select max(vcCompletePercent) from Table group by 事件)
laowang134 2012-07-18
  • 打赏
  • 举报
回复
参考
CREATE TABLE #(id int identity(1,1),name nvarchar(20),score int,adddate datetime)
INSERT # SELECT '张三',80,'2011-2-10 8:03:20'
UNION ALL SELECT '李四',10,'2011-2-10 8:01:15'
UNION ALL SELECT '王五',20,'2011-2-10 8:02:10'
UNION ALL SELECT '张三',50,'2011-2-10 8:10:20'
UNION ALL SELECT '张三',40,'2011-2-10 8:00:40'
UNION ALL SELECT '王五',60,'2011-2-10 8:04:24'
SELECT * FROM
(
SELECT *,ROW_NUMBER() OVER(PARTITION BY name ORDER BY adddate DESC) row FROM #
) T
WHERE row=1 ORDER BY adddate DESC
/*
--适用于2005及以上版本
id name score adddate row
----------- -------------------- ----------- ----------------------- --------------------
4 张三 50 2011-02-10 08:10:20.000 1
6 王五 60 2011-02-10 08:04:24.000 1
2 李四 10 2011-02-10 08:01:15.000 1

(3 行受影响)
*/
lizhengdao1314 2012-07-18
  • 打赏
  • 举报
回复
select * from Table where 事件 in (select max(事件) from Table group by vcCompletePercent)
全栈极简 2012-07-18
  • 打赏
  • 举报
回复

select max(百分比),事件 group by 事件 --类似于这个,可以自动扩展

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧