sql 查询数据表后 在统计某一列数据不重复的数量

求统计第一列不相同的个数SELECT[Store_Abbreviation],[Goodname],[Goodmodel],SUM(Order_Quantity)ASOr... 求统计第一列 不相同的个数
SELECT [Store_Abbreviation] ,[Goodname], [Goodmodel] ,SUM(Order_Quantity) AS Order_Quantity, [Store_Abbreviation] ,
[Workid] FROM (select [Goods_Name],[Order_Quantity],[Delivery_Date],[Store_Abbreviation],[Goodmodel] ,[Workid],[Goodname] from
[fangtaidata].[dbo].[SalesStatistics] where [Delivery_Date] between '2014-07-02' and '2014-07-25' ) AS QT
GROUP BY [Store_Abbreviation],[Goodmodel],[Workid],[Goodname]
展开
 我来答
59分粑粑分享生活
高粉答主

2020-03-16 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119790

向TA提问 私信TA
展开全部

统计第一列不相同的个数的操作方法和步骤如下:

1、首先,创建测试表,代码如下图所示。

2、其次,完成上述步骤后,插入测试数据,代码如下图所示。

3、接着,完成上述步骤后,创建所需临时表,代码如下图所示。

4、最后,完成上述步骤后,统计每一列不重复的数据量,如下图所示。这样,问题就解决了。

freechan10
2019-11-13 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.2万
展开全部

1、创建测试表,

create table test_SalesStatistics (Goods_Name varchar2(200),Order_Quantity varchar2(200),

                      Delivery_Date varchar2(200),Store_Abbreviation varchar2(200),

                      Goodmodel  varchar2(200),Workid varchar2(200),Goodname  varchar2(200) );

2、插入测试数据,

insert into test_SalesStatistics

  select 'name_' || (level / 4),

         level / 4,

         sysdate - level,

         level / 10,

         level / 100,

         level / 8,

         'goods_' || (level / 4)

    from dual

  connect by level < 10000;

3、创建所需临时表,

create table TEST_MID as

SELECT Store_Abbreviation,

       Goodname,

       Goodmodel,

       SUM(Order_Quantity) AS Order_Quantity,

       Workid

  FROM (select Goods_Name,

               Order_Quantity,

               Delivery_Date,

               Store_Abbreviation,

               Goodmodel,

               Workid,

               Goodname        

          from test_SalesStatistics        

         where to_char(Delivery_Date) between '19980810' and '20000810'        

        )

 GROUP BY Store_Abbreviation, Goodmodel, Workid, Goodname

4、统计每一列不重复的数据量,

select count(distinct Store_Abbreviation) Store_Abbreviation,

       count(distinct Goodmodel) Goodmodel,

       count(distinct Workid) Workid ,

       count(distinct Goodname) Goodname

  from TEST_MID t;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逗比一坨坨
推荐于2017-09-19 · TA获得超过203个赞
知道答主
回答量:95
采纳率:0%
帮助的人:93.2万
展开全部

友善的提醒两点,如有帮助还望采纳,谢谢!

第一、你这个语句本身写的有点麻烦,简化如下

SELECT [Store_Abbreviation]  ,[Goodname], [Goodmodel] ,SUM(Order_Quantity) AS Order_Quantity, [Workid]
from [fangtaidata].[dbo].[SalesStatistics] 
where  [Delivery_Date]  between  '2014-07-02' and  '2014-07-25' 
GROUP BY [Store_Abbreviation],[Goodmodel],[Workid],[Goodname]

第二、统计不重复的数量也很简单,再写个语句

--只取第一列
select count(distinct Store_Abbreviation) 
from [fangtaidata].[dbo].[SalesStatistics] 
where  [Delivery_Date]  between  '2014-07-02' and  '2014-07-25'

 


--想得到多列的数量
select count(distinct Store_Abbreviation) ,count(distinct Goodname) ,count(distinct Goodmodel) ,count(distinct Workid) 
from [fangtaidata].[dbo].[SalesStatistics] 
where  [Delivery_Date]  between  '2014-07-02' and  '2014-07-25'


码字不易,如有帮助,还望采纳,谢谢!

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2014-08-13 · TA获得超过7529个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2505万
展开全部
SELECT [Store_Abbreviation] ,COUNT(*)
FROM (select [Goods_Name],[Order_Quantity],[Delivery_Date],[Store_Abbreviation],[Goodmodel] ,[Workid],[Goodname] from
[fangtaidata].[dbo].[SalesStatistics]
where [Delivery_Date] between '2014-07-02' and '2014-07-25'
) AS QT
GROUP BY [Store_Abbreviation]
having count(*)=1
;
显示第一列不重复的数据
追问
你理解错误了 我的意思是 获取结果得到数据4  是统计第一列不相同的数据的条数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式