【问题标题】:Get count of items and their values in one column获取一列中的项目数及其值
【发布时间】:2011-09-05 20:15:08
【问题描述】:

考虑这些表格:

Table Items:

ItemID    ItemName
------------------
 1          N1
 2          N2 
 3          N4
 4          N5

在 MyTbl 表中,我有一个 ItemID,可能是这样的:

ItemId
----
1
1
3
4
4
4

我想写一个返回这个结果的查询:

ItemId        count
-------------------
   1            2
   2            0
   3            1
   4            3

没有光标我怎么能做到这一点?

【问题讨论】:

    标签: sql sql-server-2008


    【解决方案1】:

    您可以从ItemsLEFT JOIN MyTbl 中选择每个项目,在公共ItemID 上,计算匹配项;

    select 
       Items.itemId,
       count(MyTbl.itemId) as count
    from Items
       left join MyTbl on (MyTbl.ItemID = Items.ItemID)
    group by Items.itemId
    order by Items.itemId
    

    【讨论】:

      【解决方案2】:

      试试这个:

      declare @Items as table(ItemID int,ItemName varchar(20))
      declare @MyTbl as table(ItemId int)
      
      insert into  @Items values(1, 'N1')
      insert into  @Items values(2, 'N2') 
      insert into  @Items values(3, 'N4')
      insert into  @Items values(4, 'N5')
      
      insert into @MyTbl values(1)
      insert into @MyTbl values(1)
      insert into @MyTbl values(3)
      insert into @MyTbl values(4)
      insert into @MyTbl values(4)
      insert into @MyTbl values(4)
      
      select I.ItemID, COUNT(M.ItemId) as [COUNT] from  @Items I left outer join @MyTbl M on I.ItemID = M.ItemId
          group by I.ItemID
      

      【讨论】:

        猜你喜欢
        • 2011-01-01
        • 2022-01-02
        • 2021-05-14
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 2011-06-24
        • 2023-03-11
        • 2015-09-18
        相关资源
        最近更新 更多