当前位置: 首页 > wzjs >正文

湛江建设工程造价信息网南通百度seo代理

湛江建设工程造价信息网,南通百度seo代理,做游戏视频网站,荔湾网站制作公司文章目录 SQL语句---特殊查询1、行列转换1.1 行转列1.1.1 统计每个人的各科分数及总分1.1.2 统计各门课程的数据 1.2 列转行1.2.1 查询每个人的工资流水 2、按月统计 SQL语句—特殊查询 1、行列转换 1.1 行转列 有如下score表 1.1.1 统计每个人的各科分数及总分 编写SQL语句…

文章目录

  • SQL语句---特殊查询
    • 1、行列转换
      • 1.1 行转列
        • 1.1.1 统计每个人的各科分数及总分
        • 1.1.2 统计各门课程的数据
      • 1.2 列转行
        • 1.2.1 查询每个人的工资流水
    • 2、按月统计

SQL语句—特殊查询

1、行列转换

1.1 行转列

有如下score表

在这里插入图片描述

1.1.1 统计每个人的各科分数及总分

编写SQL语句,得到如下结果:

在这里插入图片描述
使用CASE

select student,max(CASE WHEN subject = 'Java' THEN score END) as Java,max(CASE WHEN subject = 'MySQL' THEN score END) as MySQL,max(CASE WHEN subject = 'HTML' THEN score END) as HTML,sum(score) as Total
from score
GROUP BY student

使用子查询

select student, (select score from score s1 where s1.student = s.student and subject = 'Java') as Java,(select score from score s1 where s1.student = s.student and subject = 'MySQL') as MySQL,(select score from score s1 where s1.student = s.student and subject = 'HTML') as HTML,sum(score) as Total
from score s
group by student
1.1.2 统计各门课程的数据

查询各门课程的最高分,最低分,平均分,及格率,不及格率,如下表:

在这里插入图片描述
使用子查询

对于最高分、最低分、平均分,只需要使用聚合函数即可。

但及格率和不及格率计算很不方便,这里使用case生成两个辅助列。

select subject,max(score) as 最高分, min(score) as 最低分, avg(score) as 平均分, sum(及格)/count(id) as 及格率, sum(不及格)/count(id) as 不及格率
from (select *,case when score>=60 then 1 else 0 end as 及格,case when score<60 then 1 else 0 end as 不及格from score
) as s
group by subject

1.2 列转行

有如下表:

在这里插入图片描述

1.2.1 查询每个人的工资流水

编写SQL语句,得到如下结果:

在这里插入图片描述
使用UNION拼接

select name, 'Jan' as month, Jan
from salary 
union
select name, 'Feb' as month, Feb
from salary 
union
select name, 'Mar' as month, Mar
from salary 
order by name desc

2、按月统计

数据表

有如下order表:

在这里插入图片描述
统计每个月的总销售额

编写SQL语句,得到如下结果:

在这里插入图片描述
每月都有数据

直接根据月份进行分组,不需要额外生成月份。

select DATE_FORMAT(time,'%Y-%m') as 月份, count(id) 订单数,sum(count) 销售量,sum(count*salary) 销售额
from `order`
group by year(time), month(time)
order by time

有的月份没有数据

需要额外生成月份,再进行连接查询。

查询过去12个月,每月的销售额,如当前日期是2023/08/08,则查询2022/08~2022/09十二个月的数据。

可利用如下代码生成12个月的信息:

select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 1 MONTH)) as m UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 2 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 3 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 4 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 5 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 6 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 7 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 8 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 9 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 10 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 11 MONTH)) UNION
select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 12 MONTH))

将得到如下结果:

在这里插入图片描述
再与order表进行连接查询。

select DATE_FORMAT(m,'%Y-%m') as 月份, COUNT(id) 订单数,IFNULL(SUM(count), 0) 销售量,IFNULL(SUM(count*salary), 0) 销售额
from (select LAST_DAY(SUBDATE(CURDATE(),INTERVAL 1 MONTH)) as m UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 2 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 3 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 4 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 5 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 6 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 7 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 8 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 9 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 10 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 11 MONTH)) UNIONselect LAST_DAY(SUBDATE(CURDATE(),INTERVAL 12 MONTH))
) as month
left join `order` on year(time) = year(m) and month(time) = month(m)
group by m
http://www.dtcms.com/wzjs/302360.html

相关文章:

  • 苏州建设银行网站首页谷歌推广代理
  • 金融公司网站开发费用入什么科目百度推广视频
  • wordpress本地上传到网站专业海外网站推广
  • 网站中数据查询如何做杭州百度推广
  • 网站建站目标福建seo推广方案
  • 中企动力官方网站aso关键词优化工具
  • 网站建设之后百度搜索引擎优化怎么做
  • 贵阳做网站的公司深圳抖音推广
  • 广州中英文网站建设攀枝花seo
  • 做音频主播的网站软文营销案例文章
  • 口碑好的企业网站开发微信公众号软文怎么写
  • 旅游景点网页制作东莞百度快速优化排名
  • 广州企业建设网站竞价推广开户电话
  • 广西互联网推广seo培训一对一
  • 黄页网站推广app免费下载考研培训机构排名
  • 企业微信开放平台宁波seo网络推广渠道介绍
  • 广州技术支持:奇亿网站建设域名注册腾讯云
  • 做网站方面百度关键词热度查询
  • 服装网页设计网站南京最大网站建设公司
  • 青岛住房和城乡建设厅网站首页佛山关键词排名效果
  • 企业网站托管外包平台小时seo百度关键词点击器
  • 电商 网站 降低 跳出率 措施 效果正规考证培训机构
  • 男女做爰免费网站长沙seo外包
  • 网站图标做多大好品牌推广文案
  • 深圳高端网站建设多少钱miy188coo免费入口
  • 网站开发技术发展网络搜索词排名
  • 杭州哪家公司可以做网站百度广告联盟怎么赚钱
  • 网站建设上传sem优化师
  • 微餐饮网站建设官网潍坊网站外包
  • 做网站需要提供哪些资料关键词快速上首页排名