【问题标题】:find count of distinct values in a column查找列中不同值的计数
【发布时间】:2013-04-05 07:43:18
【问题描述】:

大家好,我正在尝试构建一个 sql 查询以在仪表板上显示一些信息。

我有一个表来存储我的销售数据。我的查询需要查找过去 7 天的总销售额,平均值并根据区域(存在于用户表中)对其进行分组。我创建了一个临时表来获取商品销售额。DashBoard_Items 表包含需要在仪表板上显示的特定商品。现在我的问题是我需要获取每个地区的商店数量以找到平均销售额。请有人帮忙

Declare @TableTest 
table(itemid int,itemname varchar(100),itemdescription varchar(100),id int,itemidd int,userid int,orderdate varchar(40),qty int)

insert into @TableTest 
select * from DashBoard_Items join
 SalesQTY on SalesQTY.OrderDate>=  CONVERT(varchar(10) , DATEADD(DAY,-7,GETDATE()),126) 
 and OOS_DashBoard_CoreItems.itemid=SalesQTY.itemid


select distinct t.userid,u.region from @TableTest t join users u on t.userid=u.userid and region is not null

以上选择查询返回

如何从上述选择查询中获取区域计数

    region             count
 5 - SUN WEST            2
 2 - LONG ISLAND         3

【问题讨论】:

    标签: asp.net sql sql-server-2012


    【解决方案1】:

    您需要按region分组,然后使用cont(*)

    SELECT region, count(*) 
    FROM @TableTest
    GROUP BY region;
    

    【讨论】:

      【解决方案2】:

      请尝试:

      SELECT 
          Region, 
          COUNT(*) AS [Count]
      FROM YourTable 
      GROUP BY Region
      

      SELECT 
          DISTINCT Region, 
          COUNT(*) OVER (PARTITION BY Region)  AS [Count]
      FROM YourTable
      

      【讨论】:

        【解决方案3】:
        SELECT u.region, COUNT(*)
        FROM @TableTest t JOIN users u ON t.userid=u.userid AND u.region IS NOT NULL
        GROUP BY u.region
        

        【讨论】:

          【解决方案4】:

          试试

          SELECT region, count( * )
          FROM mytable
          GROUP BY region
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-10-03
            • 1970-01-01
            • 2020-04-11
            • 2014-09-16
            • 2015-08-10
            • 1970-01-01
            • 2015-03-27
            相关资源
            最近更新 更多