• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

求一个SQL语句,求高效的思路,在线等。

enaking 2019-05-28 06:53:40
有表Dept(DeptId,DeptName.......),Emp(DeptId,EmpId,EmpName),Sell(EmpId,SellId,Money)

现在要统计出如下记录
部门名称,部门人数,销售单数,销售金额。
第一小组 5 50 50000
第二小组 7 80 120000
我想的是分组去统计,但这个应该要嵌入分组查询吧。就是select * from (select * from .... group by ...) group by ... 这样吧,有没有更高效的办法,主要数据大,并且要带有及时性,并且数据变化也很频繁,所以领导否定了事先定时统计。请问还有没有更高的效率的办法。谢谢
...全文
98 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2019-05-29
引用 3 楼 enaking 的回复:
你这样是不行的,这样Count(e.EmpID)和Count(s.SellId)是相同的,因为都表示查询到的记录条数
灵活运用distinct select d.DeptName as 部门名称 ,Count(distinct e.EmpID) as 部门人数 ,Count(distinct s.SellId) as 销售单数 ,Sum(m.Money) as 销售金额 from Dept d left join Emp e on d.DeptID=e.DeptID left join Sell s on e.EmpID=s.EmpID group by d.DeptName
回复
enaking 2019-05-29
看这样子,是不是只能嵌入了,因为我只是举了一个例子,我这个表关系,不止三层,一共有六层,那是不是要嵌入5次,我试过了,速度太慢了啊。
回复
诗和远方C 2019-05-29
with total as(
select DEPT.DEPTNAME , SELL.EMPID,SELL.SELLID,SELL.MONEY,EMP.EMPNAME from sell,emp,dept
where SELL.EMPID=EMP.EMPID and EMP.DEPTID=DEPT.DEPTID
)
select a.DEPTNAME,a.人数,b.单数,c.金额 from
(select DEPTNAME,count(EMPID) as 人数 from( select distinct TOTAL.DEPTNAME,TOTAL.EMPID from total ) group by DEPTNAME)a,
(select TOTAL.DEPTNAME,sum( total.SELLID)单数 from total group by DEPTNAME)b,
(select TOTAL.DEPTNAME,sum( total.MONEY)金额 from total group by DEPTNAME)c
where a.DEPTNAME=b.DEPTNAME and a.DEPTNAME=c.DEPTNAME
order by DEPTNAME


最终目标是第X分组的各项数据,我写的total可能因为表太大查的太慢了,要查询3个子表的感觉,第一个表查出来第x组,有多少人,第二个表查第x组,卖了多少单,第三个表查
第X组卖了多少金额。拙见
回复
ManBOyyy 2019-05-29
select * from (select * from 表 where 條件 group by ...) group by ...

在裡面先查完條件再左右鏈接
回复
wilson1966 2019-05-29
你加入年度和月份后,速度应会加快
回复
enaking 2019-05-29
引用 1 楼 正怒月神 的回复:
手打的,不太确定
select d.DeptName as 部门名称
,Count(e.EmpID) as 部门人数
,Count(s.SellId) as 销售单数
,Sum(m.Money) as 销售金额
from Dept d
left join Emp e on d.DeptID=e.DeptID
left join Sell s on e.EmpID=s.EmpID
group by d.DeptName


你这样是不行的,这样Count(e.EmpID)和Count(s.SellId)是相同的,因为都表示查询到的记录条数
回复
enaking 2019-05-29
引用 1 楼 正怒月神 的回复:
手打的,不太确定
select d.DeptName as 部门名称
,Count(e.EmpID) as 部门人数
,Count(s.SellId) as 销售单数
,Sum(m.Money) as 销售金额
from Dept d
left join Emp e on d.DeptID=e.DeptID
left join Sell s on e.EmpID=s.EmpID
group by d.DeptName

你这样是不行的,这样Count(e.EmpID)和Count(s.SellId),因为都表示查询到的记录条数
回复
正怒月神 2019-05-28
手打的,不太确定
select d.DeptName as 部门名称
,Count(e.EmpID) as 部门人数 
,Count(s.SellId) as 销售单数
,Sum(m.Money) as 销售金额
from Dept d
left join Emp e on d.DeptID=e.DeptID
left join Sell s on e.EmpID=s.EmpID
group by d.DeptName
回复
相关推荐
执行sql语句update多条记录实现思路
执行一条sql语句update多条记录实现思路 如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下 通常情况...
JAVA上百实例源码以及开源项目源代码
java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(key...
MySQL数据库从入门到实战课
限时福利1:购课进答疑群专享柳峰(刘运强)老师答疑服务。 为什么说每一个程序员都应该学习MySQL? 根据《2019-2020年中国开发者调查报告》显示,超83%...具备MySQL的日常运维能力,语句调优、备份恢复等思路。  
Oracle高效SQL优化分析文档合集
教程名称:Oracle高效SQL优化分析文档合集课程目录:【】4第三部分 ORACLE 高效SQL分析1(方法)【】5第三部分 ORACLE 高效SQL分析2(具体问题)【】ORACLE SQL语句优化技术分析【】Oracle.10g性能分析与优化思路...
Java基础知识面试题(2020最新版)
文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
SQL语句大全大全(经典珍藏版)
SQL语句大全 --语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE TABLE --创建...
如何写出高性能的SQL语句,及如何进行SQL性能分析与调优
索引是数据库中重要的存储结构,对于查询耗时影响甚大,应避免导致索引无效的sql语句 索引失效的场景: 1、缺失索引 2、where 条件中的or 3、where条件表字段使用函数 4、where条件中存在隐式转换 5、where...
KV数据库是怎样支持SQL语句
三篇文章了解 TiDB 技术内幕 - 说计算 关系模型到 Key-Value 模型的映射 在这我们将关系模型简单理解为 Table 和 SQL 语句,那么问题变为如何在 KV 结构上保存 ... 假设我们有这样一个表的定义: Copy CREATE...
【MySQL】项目中常用的 18 条 MySQL 优化 打造高性能 SQL 语句
一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数。该值是个预估值 Extra列,详细说明...
前端面试题
、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 21 每HTML文件里开头都有很重要的东西,Doctype,知道这是干什么的吗? 21 Quirks模式是什么?它和Standards模式有什么区别 21 ...
MySQL大数据量分页SQL语句优化
分页程序原理很简单,这里就不多说了,本篇文章...一般的情况下,我们的分页SQL语句是这样的: 查看代码  打印 1 SELECT * FROM table ORDER BY id LIMIT 1000,10;
2020届校招浦发银行 信息科技 创新岗 面经及历年汇总~
浦发银行 信息科技岗 面经...1、即兴演讲(结构化面试 3面试官对6学生):每人随机题,思考两分钟后,回答三分钟 今年即兴演讲环节已取消!!! 2、上机测试:三道编程题,较为基础,在线编译器只有C、C++和Ja...
这道面试题你确定不看看吗:sql语句,有多查询条件,你会选择哪个字段作为索引,为什么?
今天的题目是:在mysql中,sql,有多查询条件,你会选择哪个字段作为索引,依据是什么? sql示例是这样的: select * from table where field_a = xx and field_b = xx and field_c = xx 思考一下,如果是你,...
常用SQL语句总结
总结了一下常用的SQL语句: DDL—数据定义语言(Create,Alter,Drop,DECLARE)  DML—数据操纵语言(Select,Delete,Update,Insert)  DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)  首先,简要...
SQL优化思路大全
、百万级数据库优化方案1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表...
WebGoat SQL盲注 解题思路
WebGoat SQL盲注 解题思路 ★ 题目:SQL Injection (advanced) 地址: http://127.0.0.1:8080/WebGoat/start.mvc#lesson/SqlInjectionAdvanced.lesson/4 题目要求最终以Tom的身份登录到系统中。 LOGIN界面: ...
C#基础教程-c#实例教程,适合初学者
章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠章的内容就完全掌握C#语言是不可能的,...
MyBatis的SQL语句批量执行
自己写一个呗   二、实现思路 Spring中的jdbcTemplate.batchUpdate()能够批量执行SQL语句。所以,只要想办法拿到Mybatis中的SQL语句(以?作为占位符),然后结合jdbcTemplate.batchUpdate()就能够批量...
JAVA上百实例源码以及开源项目
java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥  Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(key...
sql 语句 优化
2、查询SQL语句时打开“显示估计的执行计划”,分析每步骤的情况  3、初级做法,在CPU占用率高的时候,打开SQL Server Profiler运行,将跑下来的数据存到文件中,然后打开数据库引擎优化顾问调用那个文件进行...
常用SQL语句
//利用pSQL改数据 select * from eosoperator o where o.userid='admincz' for update wqNXrEJQJ2bfy1uGWiiX0w== Q3qtuxGsI7B5u60nFMu+qA== commit dCz7O+t2DE1ox6sKPqNp/w== 5185024 shengzhonhxin... wqNX
自定义Druid的拦截器(实现对sql语句的拦截)
Druid是一个JDBC组件,它包括三部分:  DruidDriver 代理Driver,能够提供基于Filter...1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数...
精心整理的SQL语句学习大全
SQL语句大全 --语 句 功 能  --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 ...
sql语句
SQL语句大全--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库...
SQL语句和sql函数
查看数据所占空间的两函数: -- 查看所占字节数 select length('你好,世界') from dual; -- 查看所占字符数,即多少字母,多少汉字 select lengthb('您好,美女') from dual; -- 比如 create table aaa (a ...
优化SQL语句
、优化SQL语句,如下面: 1、WHERE子句中的连接顺序.  ORACLE采用自下而上的顺序解析WHERE子句,根据这原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的...
常用SQL语法语句
DDL—数据定义语言(Create,Alter,Drop,DECLARE)  DML—数据操纵语言(Select,Delete,Update,...首先,简要介绍基础语句: 1、说明:创建数据库 Create DATABASE database-name  2、说明:删除数据库 drop
mysql定位距离计算,sql语句就能解决
那么如何简单高效的解决呢,请看接下来的表演! 解决方案 可能有人使用圆周率,我早就忘了,所以我决定使用坐标和三角函数,初中学的知识,终于能用上啦 思路 使用坐标的原因有两, 1它可以模拟经纬度,其实经纬度就是...
sql语句写法注意项
几年前Oracle用的比较多的时候,写的一个CheckList,希望对使用Oracle的朋友有帮助。因为当时主要基于Oracle 8i写的文档,对于目前9i,10G大部分都适用,但是可能个别地方会有所不同。 作为与SQL相关的程序员的...
FFmpegAndroidDemo.zip
ffmpeg-3.3.1移植到android平台
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2019-05-28 06:53
社区公告

让您成为最强悍的C#开发者