SQL 知识整理

聚合函数

汇总,计数

某个项目任务数量

SELECT
    dcxm.Projname,
    COUNT ( jpt.id ) AS task_amount 
FROM
    dcxm
    LEFT JOIN project_task jpt ON dcxm.mdm_m_Projectid = jpt.project_code 
GROUP BY
    Projname 
ORDER BY
    task_amount DESC

某个项目下某个人的任务数量

SELECT
    dcxm.Projname,
    jpt.create_user,
    COUNT ( jpt.id ) AS task_amount,
    COUNT ( CASE jpt.project_task_type WHEN 2 THEN 1 ELSE NULL END ) review_tast_amount,
    COUNT ( CASE jpt.project_task_type WHEN 1 THEN 1 ELSE NULL END ) change_tast_amount 
FROM
    dcxm
    LEFT JOIN project_task jpt ON dcxm.mdm_m_Projectid = jpt.project_code 
GROUP BY
    Projname,
    create_user 
ORDER BY
    Projname,
    task_amount DESC

人均有效审图意见数

SELECT
    Projname,
    user_amount,
    task_amount,
    review_tast_amount,
    change_tast_amount,
    effect_suggestion_amount,
    cast(CASE
    user_amount 
    WHEN 0 THEN 0 
    ELSE cast(effect_suggestion_amount as DECIMAL(4,2)) / user_amount
    END as DECIMAL(4,2)) as ratio_effect 
FROM
    (
SELECT
    dcxm.Projname,
    COUNT ( DISTINCT jpt.create_user ) user_amount,
    COUNT ( jpt.id ) AS task_amount,
    COUNT ( CASE jpt.project_task_type WHEN 2 THEN 1 ELSE NULL END ) review_tast_amount,
    COUNT ( CASE jpt.project_task_type WHEN 1 THEN 1 ELSE NULL END ) change_tast_amount,
    COUNT ( CASE jpts.suggestion_audit WHEN 1 THEN 1 ELSE NULL END ) effect_suggestion_amount 
FROM
    dcxm
    LEFT JOIN project_task jpt ON dcxm.mdm_m_Projectid = jpt.project_code
    LEFT JOIN project_task_suggestion jpts ON jpt.id = jpts.project_task_id 
GROUP BY
    Projname 
    ) T_A 
ORDER BY ratio_effect DESC

select

本质是什么

从表中选取数据

结果集导航


innerserct


union
union all


except

join

distinct

update

你可能感兴趣的:(SQL 知识整理)