Consulta MySQL-DQL-group

  • consulta de grupo

    • Sintaxe: selecionar lista de campos da tabela nome [ where condition ] agrupar por grupo nome do campo [ tendo condição de filtro após agrupamento ];
    • agrupar por
      • código específico
      • -- 1.根据性别分组,统计男性和女性的员工数量
        select gender, count(*) -- 分组字段+聚合函数
        from tb_emp
        group by gender;
    • tendo
      • código específico
      • -- 2.先查询入职时间在’2015-01-01‘(入职)的员工,并对结果进行职位分组,获取员工数量>=2的职位
        select job, count(*)
        from tb_emp
        where entrydate <= '2015-01-01'
        group by job
        having count(*) >= 2;
    • resumo

      • A diferença entre onde e ter ( perguntas da entrevista )
        • O tempo de execução é diferente: where é filtrar antes do agrupamento, se a condição where não for atendida, ele não participará do agrupamento; enquanto have é filtrar os resultados após o agrupamento
        • As condições de julgamento são diferentes: onde não pode julgar a função de agregação, mas pode julgar a função de agregação
    • Precauções

      • Após o agrupamento, os campos de consulta são geralmente funções de agregação e campos de segmentação, e não faz sentido consultar outros campos
      • Ordem de execução: onde>função agregada>tendo

おすすめ

転載: blog.csdn.net/weixin_64939936/article/details/131775336