首页 > 数据库 >mosh-10小时SQL

mosh-10小时SQL

时间:2024-08-21 17:48:51浏览次数:5  
标签:10 -- SUM mosh invoice SQL date total payment

-- 3小时结束,另外7小时

SELECT
  MAX(invoice_total) highest,
  MIN(invoice_total) lowest,
  AVG(invoice_total) average,
  SUM(invoice_total) total, -- 可以写表达式 SUM(invoice_total) * 1.1)
  COUNT(invoice_total) number_of_invoices,
  COUNT(DISTINCT client_id),-- 记录唯一值
  COUNT(payment_date) number_of_payment, -- 忽略空值
  COUNT(*) total_records -- 包含空值
FROM invoices
WHERE invoice_date > '2019-07-01';

-- EXERCISE
SELECT
  'First half of 2019' date_range,
  SUM(invoice_total) total_sales,
  SUM(payment_total) total_payment,
  SUM(invoice_total - payment_total) what_we_expect
FROM invoices
WHERE invoice_date BETWEEN '2019-01-01' AND '2019-06-30'
UNION
SELECT
  'Second half of 2019' date_range,
  SUM(invoice_total) total_sales,
  SUM(payment_total) total_payment,
  SUM(invoice_total - payment_total) what_we_expect
FROM invoices
WHERE invoice_date BETWEEN '2019-07-01' AND '2019-12-31'
UNION
SELECT
  'Total' date_range,
  SUM(invoice_total) total_sales,
  SUM(payment_total) total_payment,
  SUM(invoice_total - payment_total) what_we_expect
FROM invoices
WHERE invoice_date BETWEEN '2019-01-01' AND '2019-12-31';
-- 聚合函数汇总数据

SELECT
  p.date,
  pm.name payment_method,
  SUM(p.amount) total_payments
FROM payments p
JOIN payment_methods pm
ON p.payment_method = pm.payment_method_id
GROUP BY date,payment_method
ORDER BY date;
-- GROUP BY数据分组

SELECT
  c.customer_id,
  c.first_name,
  c.last_name,
SUM(oi.quantity * oi.unit_price) AS total_sales
FROM customers c
JOIN orders o USING(customer_id)
JOIN order_items oi USING(order_id)
WHERE c.state = 'VA'
GROUP BY
  c.customer_id,
  c.first_name,
  c.last_name
HAVING total_sales > 100;
-- HAVING 过滤分组结果,放置在GROUP BY后,后接字段须是GROUP BY出现过的字段

SELECT
  pm.name payment_method,
  SUM(amount) total
FROM payments p
JOIN payment_methods pm
ON p.payment_method = pm.payment_method_id
GROUP BY pm.name WITH ROLLUP;
-- WITH ROLLUP 汇总聚合函数,用在GROUP BY之后,如果别名是表中已经出现过的,WITH ROLLUP前使用实际字段名,不能使用别名;如果别名是表中没有的字段,可以使用别名。

标签:10,--,SUM,mosh,invoice,SQL,date,total,payment
From: https://www.cnblogs.com/zxw007/p/18372222

相关文章

  • 一文总结MySQL各种锁
    概述对于后端Java开发人员来说,锁主要有Java锁和DB锁。Java锁,请参考一文总结Java开发各种锁。本文所述的DB锁,可能会局限于MySQL数据库。隔离级别与锁的关系在RU级别下,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突在RC级别下,读操作需要加共享锁,但是在语句执......
  • MySQL子查询、WITH AS、LAG查询统计数据实战
    需求给出一个比较常见的统计类业务需求:统计App(包括iOS和Android两大类)每日新注册用户数、以及累计注册用户数。数据库采用MySQL,根据上面的需求,不难设计表如下:createtableos_day_count(stat_datevarchar(10)notnullcomment'统计日期',osvarcha......
  • 18107 校赛排名
    ###详细分析为了对参赛选手进行排序,我们需要按照以下规则:1.按照通过题数从高到低排序。2.如果通过题数相同,则按照用时从少到多排序。3.如果通过题数和用时都相同,则按照输入的先后顺序排序。###思路1.读取输入的选手数量`N`。2.读取每个选手的数据(通过题数、用......
  • Spring Mybatis拦截器配合logback打印完整sql语句
    在项目开发与维护过程中,常常需要对程序执行的sql语句,进行观察和分析。但是项目通常默认会使用org.apache.ibatis.logging.stdout.StdOutImpl日志配置,该配置是用System.out.println打印的日志,导致只能将执行语句打印到控制台,却没办法打印到日志文件中。如果放开logback日志等......
  • 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2024年7月刊
    本文为大家整理了墨天轮数据社区2024年7月发布的优质技术文章/文档,主题涵盖Oracle、MySQL、PostgreSQL等主流数据库系统以及国产数据库的深度教程和实用指南。从基础的安装配置到复杂的故障排查,再到性能优化的高级技巧,每篇文章都是由领域专家精心撰写。此外,还有常用脚本和操作注意......
  • SQLserver中的增删改查和数据类型
    SQLserver增删查改语句SQLServer是一种关系数据库管理系统,用于存储、管理和检索数据。以下是一些基本的SQL语句,用于在SQLServer中执行增删查改操作:插入数据(Insert)插入完整行:INSERTINTO表名(列1,列2,列3,...)VALUES(值1,值2,值3,...);插入多行:INSE......
  • 【mysql】纯干货--mysql连接与启动
      本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》: python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新......
  • 全国10米分辨率逐年植被覆盖度(FVC)数据集
       本数据集包括2017至2023年间,全国植被覆盖度数据,FVC范围值为0-1,数据为浮点型,GeoTIFF格式。GeoTIFF文件均可用ArcGIS软件和GDAL读取和打开。   植被覆盖度是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区总面积的百分比。是刻画地表植被覆盖的一个重要参数,......
  • SBT30100VFCT-ASEMI无人机专用SBT30100VFCT
    编辑:llSBT30100VFCT-ASEMI无人机专用SBT30100VFCT型号:SBT30100VFCT品牌:ASEMI封装:TO-220F批号:最新最大平均正向电流(IF):30A最大循环峰值反向电压(VRRM):100V最大正向电压(VF):0.70V~0..90V工作温度:-65°C~175°C反向恢复时间:35ns芯片个数:2芯片尺寸:74mil引脚数量:3正向浪涌电流......
  • 修改$ORACLE_HOME/network/admin/sqlnet.ora
    原因分析:网上查了主要是说我电脑上orcale的客户端版本和访问的oracle服务端的版本不一致,但我连接的是本地数据库,应该不存在该问题。保险起见,我先在网上找了相关问题的讨论,大家提出的常用解决方案是修改$ORACLE_HOME/network/admin/sqlnet.ora文件里的参数配置,对于该方法跟我的问......