zoukankan      html  css  js  c++  java
  • SQL笔记

    1、按照某一列指定排序,并且输出排序序号。

    例如:c1是数量,我想按照不同的flag的类型,针对这个数量排序,并且将排序的数字也生成。

    select
        *,
        row_number() over(
            partition by flag
            order by
                _c1 asc
        ) as rank
    from
        ${t1}

     

    2、针对某一列中的字段,按照字段统计另一列的和。

    例如我想针对id,将列c2和列fenzi的数值累计求和。

    select
        visitor_id,
        sum(_c2) as allcat,
        sum(fenzi) as sim
    from
        ${t1}
    group by
        visitor_id;

    3、以一列为一个组,组内去重另一列

    selectdistinct b, a from ${t1} 

    或者

    select a, b from ${t1} group by a, b

    都可以实现:

    4、A和B两个集合中,B集合中某一列不包含在A集合中的。

    A集合:

    B集合:

    我们需要找出 B集合b列中没有出现在A集合中的 ,也就是b为D的那一行

    select
        b.*
    from
        ${t1} a
        right join 
        ${t2} b 
        on a.b = b.b
    where
        a.a is null

    5、一条语句按照某字段统计数量。

    例如:表中的 type字段有 man 和 women,需要统计 男 数量和占比。

    select
        sum(
            case
                type
                when '' then 1
                else 0
            end
        ) as num,
        sum(
            case
                type
                when '' then 1
                else 0
            end
        ) / sum(1) as rate
    from
        ${t1}
  • 相关阅读:
    Java中-classpath和路径的使用
    总是分不清
    Maven Web项目部署到Tomcat下问题
    一、数据设计规范
    一、入职学习
    一、服务器控件
    WebApiThrottle限流框架
    一、接口的规则
    一、免费API调用
    十、锁
  • 原文地址:https://www.cnblogs.com/by-dream/p/9448676.html
Copyright © 2011-2022 走看看