zoukankan      html  css  js  c++  java
  • row_number() over() 一句话概括,以及max()函数的一种查询分组中最大值的用法

    row_number() over(partition by col1 order by col2) 根据COL1分组可能会有多个组,每组组内根据COL2进行排序。每组内都有自动生成的序号,从1开始,有多少个分组就有多少个从1开始的序号

    SELECT

        ROW_NUMBER() OVER(PARTITION BY table.XX ORDER BY age DESC) rn,  table .*

    FROM table

    WHERE condition = ''

    上面是分组后组内所有条数都显示,组内按从大到小排序

    下面是每组只显示一条数据,是各组中最大的,但是不能把所有信息都显示,只能显示max和group by 的字段

    select 

    max(age), table.XX

    from table

    where  condition = ''  group by table.XX

    显示所有字段,将上面的sql去掉group by分组并外面加一层查询。这个方法没有使用row_number()的效率高,因为包含了两次查询操作

    select * from table

    where age=(

    select 

    max(age), table.XX

    from table

    where  condition = ''  group by table.XX

     )

  • 相关阅读:
    ionic之样式bar-assertive
    (?m) 可以让.去匹配换行
    perl 正则前导字符
    ionic之样式bar-energized
    ionic之样式bar-balanced
    ionic之样式bar-calm
    perl /m
    sort_buffer_size:
    Filter plugins ? mutate:
    Codec plugins ? multiline
  • 原文地址:https://www.cnblogs.com/gczmn/p/7598446.html
Copyright © 2011-2022 走看看