健康一贴灵,专注医药行业管理信息化

老司机迷路了,SQL统计分类数量问题

好久没有用SQL统计数据了,今天接到一个临时任务,统计下药店的覆盖率,一通操作猛如虎,数据很快导出来了,但一细看,数据居然不对。写了10多年SQL ,这打击有点大;

1
2
3
4
5
6
7
8
--建表
CREATE TABLE [test](
    [sfmc] [varchar](100) NULL,
    [dsmc] [varchar](100) NULL,
    [xqmc] [varchar](100) NULL,
    [dwmc] [varchar](100) NULL,
    [sl] [int] default 0
) ON [PRIMARY]

  插入测试数据

复制代码
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'AAA', 0)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'BBB', 0)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'CCC', 0)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'二七区', N'ddd', 0)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'二七区', N'EEE', 0)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'AAA', 1)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'AAA', 2)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'BBB', 2)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'BBB', 1)
INSERT  [test] ([sfmc], [dsmc], [xqmc], [dwmc], [sl]) VALUES (N'河南省', N'郑州市', N'金水区', N'BBB', 5)
复制代码

 

 select * from test

  查询结果:

 

 查询需求:统计每个地区的单位(dwmc)数量,如 金水区有AAA BBB  CCC三家单位,数量应为3,格式如下图:

 

走的弯路是直接用count(*) 结合group by 操作,输出的结果当然不对;

SELECT SFMC,DSMC,xqmc,COUNT(*) FROM test GROUP BY SFMC,DSMC,xqmc

上述语句的结果

 

  

一番百度,更换以下SQL ,过到理想结果

--最终使用的SQL
SELECT SFMC,DSMC,xqmc,COUNT(*) FROM (SELECT DISTINCT SFMC,DSMC,XQMC,DWMC FROM TEST) AS A
GROUP BY A.SFMC,A.DSMC,A.xqmc

 

 

  

 

posted @   一贴灵  阅读(1053)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
学以致用,效率第一
点击右上角即可分享
微信分享提示