狂野飙车面包特点在哪:SQL 问题!

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 15:13:16
表E有三列数据,第一列A有重复,第二列B是时间,第三列C是数量(每个都可不一样)!
现在我要的结果是每行只出现一个A数据(该A数据为对应的B时间最大),该A数据为对应的B时间,该A数据为对应的C数量!
能写出相应的SQL语句吗?
我用SELECT A,MAX(B),C FROM E GROUB BY A
时,为何不行?
GROUB BY A,C 就可以有数据,但A就重复了!如何解决?
我已经用了但还是A列不唯一!!
主要可能是C列不唯一影响~~
"皮皮和蛋蛋"
你那个说OVER附近出错了!
你有QQ吗?
我觉得你应该可以解决我的问题!
我的是26529896

 group by
指定用来放置输出行的组,并且如果 SELECT 子句 <select list> 中包含聚合函数,则计算每组的汇总值。指定group by时,选择列表中任一非聚合表达式内的所有列都应包含在group by列表中,或者group by表达式必须与选择列表表达式完全匹配。text、ntext 和 image 类型的列不能用于group by expression。
改为
select distinct A,Max(B),C from E Group By A,C

你可以使用
DISTINCT 来解决

distinct

SELECT TB1.A, TB1.B, TB2.C
FROM (
SELECT DISTINCT A,Max(B) OVER (PARTITION BY A) AS B
FROM E ) TB1, E TB2
WHERE TB1.A= TB2.A
AND TB1.B= TB2.B

虽然这样可以实现,可从性能上并不推荐这么做。