如何過濾重覆資料語法?

temple_new 2023-01-18 18:40:15

問題:我用 select cno,item_1 from statist 查詢出下列資料

     Cno                   item_1    

0260000266565       1   

0260000266565       2    

0260000660967       1    

0260000663036       1    

0260000664378       1    

0260000664590       1    

0260000664590       2    

 

但是我想得出下列結果. 例如0260000266565 有兩筆 item_1 記錄, 兩筆都是1, 但第二筆會加總為2. 我想留下加總的那筆記錄, 該怎麼改語法?

 

            Cno          item_1    

0260000266565       2    

0260000660967       1    

0260000663036       1    

0260000664378       1    

0260000664590       2    

...全文
36 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
猫狸嘎 7天前
  • 打赏
  • 举报
回复 1

select 
cno
,item_1 
from
    (
    select 
    cno
    ,item_1
    ,排序列=ROW_NUMBER()over(order by item_1 desc) 
    from statist
)T where 1=1 and 排序列=1

但你说item_1赋值逻辑是count(*),那以上sql也能等同于以下sql

select 
cno
,item_1 = max(item_1)
from statist

temple_new 7天前
  • 举报
回复
@猫狸嘎 謝謝您的回覆!第(1)段語法查出購買 item_1 商品項最多的記錄, 但頗難,我無法改寫它. 不過我用第(2) 段語法, 查詢結果如下, Cno item_1 0260000266565 1 0260000266565 2 0260000660967 1 0260000663036 1 0260000664378 1 0260000664590 1 0260000664590 2 沒有過濾掉 Cno item_1 0260000266565 1 0260000664590 1 留下 Cno item_1 0260000266565 2 0260000660967 1 0260000663036 1 0260000664378 1 0260000664590 2 再請您指導!
temple_new 7天前
  • 举报
回复
@猫狸嘎 我發現是資料集的問題. 您的語法是正確的. 所以問題已解決, 謝謝!
猫狸嘎 7天前
  • 举报
回复
@temple_new 客气了,问题解决了就好
jun471537173 8天前
  • 打赏
  • 举报
回复 1

select cno,sum(item_1) as item_1 from statist group by cno

temple_new 8天前
  • 举报
回复
@jun471537173 謝謝管理員的回覆!不過, item_1 是商品項目類別, 0260000266565 的 2 是他買了兩項 item_1, 是用 count(*) 統計的個數, 但sum 會變成 3, 但我是想留著的記錄是統計最多的那個記錄. (table 中有許多 cno, 買了不同的商品類別, 有人是一項, 有人數項, 我是統計買 item_1 項目的有幾個). 再麻煩您, 謝謝!
发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2023-01-18 18:40
社区公告
暂无公告