當前位置:首頁 » 編程語言 » sql排名前十重復求和
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql排名前十重復求和

發布時間: 2022-07-08 06:24:35

A. 大神,求助!!!!sql的問題。Sqlserver,如何只取記錄前10的數據,並且把其他數據的值求和成一條記錄

你可以先根據值得大小進行降序排序,在添加row_number來多出序號一列,然後取前10 的序號值,最後用UNION將兩條語句結果合並。請參考下列code:

declare@ttable
(namevarchar(1),valueint)

insertinto@tvalues
('A',15),
('B',10),
('C',20),
('D',5),
('E',7);


;WITHCteAS
(
SELECT*,ROW_NUMBER()OVER(ORDERBYVALUEdesc)RNFROM@T
)
SELECTname,valueFROMCTEWHERERN<=3
UNIONALL
SELECT'Others',sum(value)fromctewherern>3

B. SQL 相同項求和

第一種按照分組求和就可以了
SELECT ID, SUM(NUM)
FROM tab
GROUP BY ID

第二種
SELECT tab.ID, t2.NUM
FROM tab LEFT JOIN
(SELECT ID, SUM(NUM) AS NUM FROM tab GROUP BY ID) t2
ON tab.ID = t2.ID

C. sql合並重復數據並求和

***********************
根據你的補充補充回答:
***********************

select a,sum(b) as 記錄數,max(c) as c
from 表名
group by a;

---
以上,希望對你有所幫助。

D. 請教一個sql去重排序求和的問題

我理解太差了,沒有看明白……
取和最大的前兩名
selecttop2namefrom(
selectname,sum(num)nfromtable
groupbyname)t
wheret.ndesc

不包含前兩名的所有人
selectnamefromtable
wherenamenotin(
selecttop2namefrom(
selectname,sum(num)nfromtable
groupbyname)t
wheret.ndesc
)

名字取出了,那麼現在就求和,前面的只是給你看看,最終綜合成下面這樣的一條語句,如果你需要效率高點,將notin修改為notexists,還有,你給的東東也不全,我就按照大概意思手打出來的,要是有錯誤,見諒,但是思路和這個差不多,你看看是不是你要的
前兩名分組求和
selecttop2name,nfrom(
selectname,sum(num)nfromtable
groupbyname)t
wheret.ndesc

unionall

其他的求和,使用union鏈接
select'其他',
(selectsum(num)fromtable
where
namenotin(
selecttop2namefrom(
selectname,sum(num)nfromtable
groupbyname)t
wheret.ndesc
))

E. 怎麼用sql查詢班級前十名成績的同學的姓名和分數(成績相同的學生算同一個名次)

select name,score from (

select name,score,dense_rank() over(order by score) "row" from t )
where "row"=10

F. SQL語句 同相同欄位求和排序

你看一下
,是這個
那個
sum(PCOUNT)as
sumcount是給sum(PCOUNT)起一個別名列名叫sumcount,
useinfo2
是你的表名吧,要是不是你就換一下你的表名。
select
sum(PCOUNT)as
sumcount,PNO
from
useinfo2
group
by
PNO
order
by
sumcount
答案補充
select
sum(pcount),
u.pno
from
useinfo2
as
u
inner
join
phoneinfo
as
p
on
u.pno=p.pno
group
by
u.pno
答案補充
select
sum(pcount),
u.pno
,p.pbrand,p.pname,p.ptype,p.pcost,p.count,p.pabout,p.ppic,p.logtime
from
useinfo2
as
u
inner
join
phoneinfo
as
p
on
u.pno=p.pno
group
by
u.pno
,p.pbrand,p.pname,p.ptype,p.pcost,p.count,p.pabout,p.ppic,p.logtime

G. sql語句,去重復,求和值

SELECT SUM(b) FROM (SELECT DISTINCT * FROM A)
對於表中兩行記錄完全一樣的情況,可以用下面語句獲取到去掉重復數據後的記錄:
select distinct * from 表名
將查詢的記錄放到臨時表中

H. sql重復行數據去重求和

select a,b,count(c) as c1,sum(d) as d1 --C列計數多少個,D列以A,B列為基準求和
from tablename --tablename為表名
group by a,b --以A,B列為基準