Project Euler(欧拉计划) ——Problem12:Highly divisible triangular number

ctl+alt+del三键重启情景分析

  返回  

Mysql_窗口函数_OVER()的分组参数PARTITION BY

2021/8/21 19:44:48 浏览:

一.PARTITION BY与GROUP BY区别

  • group by是分组函数,partition by是分析函数

  • 在执行顺序上:from > where > group by > having > order by,而partition by应用在以上关键字之后,可以简单理解为就是在执行完select之后,在所得结果集之上进行partition by分组

  • partition by相比较于group by,能够在保留全部数据的基础上,只对其中某些字段做分组排序(类似excel中的操作),而group by则只保留参与分组的字段和聚合函数的结果(类似excel中的pivot透视表)

二.PARTITION BY的基本用法

  • 在OVER()中添加 PARTITION BY
# 查询每种类型火车的ID,型号,一等座数量,同型号一等座数量总量
SELECT
    id,
    model,
    first_class_places,
    count(id) OVER (PARTITION BY model)
FROM train;
  • PARTITION BY传入多列
# 查询每天,每条线路速的最快车速
SELECT
    journey.id,
    journey.date,
    train.model,
    MAX(max_speed) OVER (PARTITION BY
        route_id, date)
FROM journey
JOIN train
ON train.id = journey.train_id;

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号