首页 > 数据库 >SQL247 按照dept_no进行汇总

SQL247 按照dept_no进行汇总

时间:2024-07-22 21:51:57浏览次数:8  
标签:no SUM SQL247 dept amount salesperson 计算

SQL247 按照dept_no进行汇总

按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employees

CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));

输出格式:

dept_no	employees
d001	10001,10002
d002	10006
d003	10005
d004	10003,10004
d005	10007,10008,10010
d006	10009,10010

答案

select dept_no,GROUP_CONCAT(emp_no) from dept_emp group by dept_no;

补充

# 常见聚合函数
COUNT():计算行数。
COUNT(*):计算包括 NULL 在内的所有行数。
COUNT(column_name):计算指定列中非 NULL 值的数量。
SUM():计算数值列中值的总和。
SUM(column_name):计算指定数值列的总和。
AVG():计算数值列的平均值。
AVG(column_name):计算指定数值列的平均值。
MAX():找出某列的最大值。
MAX(column_name):找出指定列的最大值。
MIN():找出某列的最小值。
MIN(column_name):找出指定列的最小值。
GROUP_CONCAT():将来自多个记录的列值连接成一个字符串。
GROUP_CONCAT(column_name):将指定列的值连接成一个字符串,列值之间默认用逗号分隔。

窗口函数

MySQL 8.0 及更高版本引入了窗口函数,这些函数允许在结果集的每行上执行计算,这些计算基于一组行(称为窗口),而这些行是通过 OVER() 子句中的 PARTITION BY 指定。
在 OVER() 子句中,PARTITION BY 子句用于将结果集分成多个分区,然后窗口函数在每个分区内独立地执行计算。
这样,每个分区都可以有自己的聚合结果,但这些结果会与原始结果集的每一行相关联。

假设我们有一个名为 sales 的表,包含 salesperson_id, sale_date, 和 amount 字段,我们想要计算每个销售人员的总销售额以及他们每天的销售额占其总销售额的百分比。

sql
SELECT  
    salesperson_id,  
    sale_date,  
    amount,  
    SUM(amount) OVER(PARTITION BY salesperson_id) AS total_sales_per_salesperson,  
    ROUND(amount * 100.0 / SUM(amount) OVER(PARTITION BY salesperson_id), 2) AS percentage_of_total  
FROM  
    sales;
在这个查询中:

SUM(amount) OVER(PARTITION BY salesperson_id) 计算了每个销售人员的总销售额。PARTITION BY salesperson_id 确保了 SUM() 函数是在每个销售人员的销售额上独立计算的。
ROUND(amount * 100.0 / SUM(amount) OVER(PARTITION BY salesperson_id), 2) 计算了每天销售额占销售人员总销售额的百分比,并保留两位小数。
注意,虽然这些函数在功能上类似于聚合函数,但它们实际上是窗口函数,因为它们允许在结果集的每一行上执行计算,而不仅仅是整个分组或整个结果集。

标签:no,SUM,SQL247,dept,amount,salesperson,计算
From: https://www.cnblogs.com/eaapple/p/18317029

相关文章

  • NOI 2024 游记
    NOI2024游记Day(-4)~(-2)UOJ模拟给大家整了个活,笔试100,Day1Day2两天各两题,过题数成功达到全场rk2水平。没写暴力,反正暴力也是随便写写,两题100多分的暴力也都是纯唐。Day0抵达酒店酒店很不错,但是不禁让我担心起了学校的住宿环境。Day1抵达学校学校宿舍疑似唐......
  • ModuleNotFoundError: No module named 'langsmith'
    ModuleNotFoundError:Nomodulenamed'langsmith'使用langchain.llms调用通义千问的api提示报错ModuleNotFoundError:Nomodulenamed'langsmith'简单来说错误信息表明在你的Python环境中存在两个软件包版本之间的冲突具体来说,langchain版本0.0.279要求langsmith的......
  • NOI2024 翻盘记
    前排提示:这里的“翻盘”指的不是Day1寄了Day2翻盘(虽然也有一点?),而是Day2单场比赛的翻盘。2024.7.12(UNR笔试)没看到与题库相比改了答案,喜提\(99\),正赛可不能这么粗心!2024.7.13(UNRDay1)唐完了。上来A结论假了,浪费了一个小时。B式子推错了,改对后以为单次复杂度是\(O(......
  • P6475 [NOI Online #2 入门组] 建设城市
    P6475[NOIOnline#2入门组]建设城市传送门分类讨论:设\(f(x,y)\)为\(C^{j-1}_{i+j-1}\)\(x,y\)在同一旁把\(x,y\)之间的看成一个高楼公式\(f(n,m)\timesf(n+x-y,m)\)\(x,y\)在异侧枚举\(x,y\)高楼的高度\(h\)\(\displaystyle\sum^{n}_{i=1}f(x-1,i)*f(n-x,m-i......
  • P3089 [USACO13NOV] Pogo-Cow S
    原题链接题解暴力dp:遍历\(i,j,k\),\(dp[i][j]=\max(dp[j][k])+v_i\)其中\(x_i-x_j\geqx_j-x_k\)优化:对于\(j\)来说,随着\(i\)越大,\(k\)可以越小,因此省去了遍历一层\(k\),而是维护每个点的\(k\),(反正求的是最大值)细节1.有两个方向2.任意起点code#include<bit......
  • MySql if not exists 使用详解
     IFNOTEXISTS可以用于创建表或者数据库的语句中,用于避免重复创建。创建表时使用IFNOTEXISTS:如果你不确定表是否存在,你可以在创建新表时使用IFNOTEXISTS,这样如果表已经存在,SQL语句将不会执行创建表的操作,也不会报错。CREATETABLEIFNOTEXISTStable_name......
  • 视频汇聚平台EasyCVR启动出现报错“cannot open shared object file”的原因排查与解
    安防视频监控EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。EasyCVR平台支持多种视频流的外部分发,如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等,这为其在各种复杂环境下的部署提供了便利。有用......
  • k8s service-node-port-range ip_local_reserved_ports 记录
    在Kubernetes中,ServiceNodePortRange是一个用于指定NodePort服务端口范围的参数。该参数定义了可以分配给NodePort服务的端口范围。默认情况下,NodePort服务使用的端口范围是30000到32767。如何查看k8sServiceNodePortRangek8smaster节点上的kube-apiserver进程......
  • Arduino循迹小车
    #include<Servo.h>//引用库//因为很多子函数要用这个变量,所以把servo定义称全局变量,作用域是整个代码文件ServomyServo;intleftX=11;intrightX=12;//全速:digitalWrite(2,3左轮;4,5右轮)//调速:analogwrite(pin,0~255)--3,5左轮6,9//analogWrite只支持3,5,6,9,10,11引脚//所......
  • 在 Jupyter Notebook 中使用Python虚拟环境
    在JupyterNotebook和Python中使用虚拟环境目录使用Virtualenv/venv创建虚拟环境使用Anaconda创建虚拟环境将虚拟环境添加到JupyterNotebook从JupyterNotebook中删除虚拟环境 在我们开始之前,什么是虚拟环境?为什么需要它?虚拟环境是Python的一个独立工作......