zoukankan      html  css  js  c++  java
  • mysql查询

    1.示例1

    查询1:

    SELECT CASE main_xm_sam31 WHEN '02' THEN 2 ELSE 1 END AS SPDJ FROM SR_MAIN_BG A WHERE A.PK_SR_MAIN = '1162275825622593536' AND (SYS_SPDJ = 0 OR SYS_SPDJ = -1)

    查询2:

    SELECT
    count(1) AS ncount,
    (
    CASE sys_sjbj
    WHEN 0 THEN
    '个人发布'
    WHEN 1 THEN
    '组织发布'
    WHEN 2 THEN
    '机构发布'
    ELSE
    '其他'
    END
    ) AS fblx,
    ifnull(
    sum(CASE rlzt WHEN 2 THEN 1 ELSE 0 END),
    0
    ) AS xyl,
    ifnull(
    ROUND(
    sum(
    TIMESTAMPDIFF(DAY, fbsj, rlsj)
    ) / sum(CASE rlzt WHEN 2 THEN 1 ELSE 0 END),
    1
    ),
    0
    ) AS pjrlsj
    FROM
    sr_xqfb
    WHERE
    fbrq LIKE '2019%'
    GROUP BY
    sys_sjbj

    查询3:

    SELECT
    CASE WHEN mdjlx = '0301' THEN '人道救援' 
    WHEN mdjlx = '2201' THEN '低收入家庭免费用电信息'
    WHEN mdjlx = '2301' THEN '低收入家庭优待信息'
    ELSE '暂定-农办厅专项救助' END AS mdjlx,
    sys_xzqh
    from sr_main_zdts

    ----------------------------------------------------------------------------

    ----------------------------------------------------------------------------

    查4(接口的平均调用时间)

    SELECT
    count,
    (zsj / count) AS pjdysj
    FROM
    (
    SELECT
    count(1) AS count,
    ifnull(
    sum(
    TIMESTAMPDIFF(DAY, a.DTJRQ, b.RKSJ)
    ),
    0
    ) AS zsj
    FROM
    dsr_hc_bm a,
    dsr_hc_hy b
    WHERE
    a.dbmbh = 'dsr_hc_hy'
    AND a.DTJRQ LIKE CONCAT('2019', '%')
    AND b.RKSJ LIKE CONCAT('2019', '%')
    AND a.dhcid = b.hyhcid
    ) c

    查5:

    //每个市的救助岗位数量
    SELECT
    count(1) AS xzqhjzgw,
    (
    SELECT
    b.xjgmc
    FROM
    mz_xzjg b
    WHERE
    b.node_id = substr(a.uxnode, 1, 4)
    ) AS xjgmc,
    substr(a.uxnode, 1, 4) AS xzqh
    FROM
    bd_user a
    WHERE
    a.UTYPE = 1
    GROUP BY
    substr(a.uxnode, 1, 4)

    查6:

    //审批时效

    SELECT
    d.xjgmc,
    round(zsj / zsl, 1) AS spsx
    FROM
    (
    SELECT
    sum(
    TIMESTAMPDIFF(DAY, jdjsprq, jspwcrq)
    ) AS zsj,
    count(1) AS zsl,
    substr(JXZJGBH, 1, 4) xzqh
    FROM
    sp_jl b
    WHERE
    b.jzt = 1
    AND jdjsprq LIKE '2019%'
    AND jspwcrq LIKE '2019%'
    AND jspxmbm IN (
    'db_jz',
    'kn_jz',
    'wb_jz',
    'ls_jz'
    )
    GROUP BY
    substr(JXZJGBH, 1, 4)
    ) c,
    mz_xzjg d
    WHERE
    c.xzqh = d.node_id

    查7

    //根据身份证年龄计算
    SELECT
    count(1) AS count
    FROM
    bd_user
    WHERE
    DATE_FORMAT(NOW(), '%Y') - SUBSTRING(usfz, 7, 4) >=0
    AND DATE_FORMAT(NOW(), '%Y') - SUBSTRING(usfz, 7, 4) <=18
    AND UTYPE = 999

    查8:

    //需求发布数量、类型、平均认领时间
    SELECT
    count(1) AS ncount,
    (
    CASE sys_sjbj
    WHEN 0 THEN
    '个人发布'
    WHEN 1 THEN
    '组织发布'
    WHEN 2 THEN
    '机构发布'
    ELSE
    '其他'
    END
    ) AS fblx,
    ifnull(
    sum(CASE rlzt WHEN 2 THEN 1 ELSE 0 END),
    0
    ) AS xyl,
    ifnull(
    ROUND(
    sum(
    TIMESTAMPDIFF(DAY, fbsj, rlsj)
    ) / sum(CASE rlzt WHEN 2 THEN 1 ELSE 0 END),
    1
    ),
    0
    ) AS pjrlsj
    FROM
    sr_xqfb
    WHERE
    fbrq LIKE '2019%'
    GROUP BY
    sys_sjbj

    -----------------------------------------------------------------------

    UNION :2个select的字段数量必须一致,字段类型一致,去重

    UNION ALL:2个select的字段数量必须一致,字段类型一致,不去重

    用默认的值代替需要的需要查询的数值,0 jzrs_kn,0 MDBBZ_kn,0 jzje_kn

    -- 低保:救助人数、救助标准(MDBBZ)、救助金额
    select xzqh,xjgmc,sum(jzrs_db) jzrs_db,sum(MDBBZ_db) MDBBZ_db,sum(jzje_db) jzje_db,sum(jzrs_kn) jzrs_kn,sum(MDBBZ_kn) MDBBZ_kn,sum(jzje_kn) jzje_kn FROM(
    SELECT
    substr(a.xzqh, 1, 4) AS xzqh,
    (
    SELECT
    xjgmc
    FROM
    mz_xzjg c
    WHERE
    c.node_id = substr(a.xzqh, 1, 4)
    ) AS xjgmc,
    sum(a.MXSRS) AS jzrs_db,
    -- MAX(a.MDBBZ) AS MDBBZ,
    a.MDBBZ AS MDBBZ_db,
    sum(a.MZJZJE) AS jzje_db,0 jzrs_kn,0 MDBBZ_kn,0 jzje_kn
    FROM
    sr_main_da a,
    mz_xzjg_da b
    WHERE
    a.xzqh = b.xzqh_id
    AND a.SYS_SCBJ = 0
    AND a.SYS_SPZT = 1
    AND a.SYS_DJZT = 1
    AND a.sjbfnf = '2019'
    AND a.sjbfyf = '07'
    AND a.mdjlx = 'db_jz'
    GROUP BY substr(a.xzqh, 1, 4)

    UNION ALL
    -- 低边:救助人数、救助标准(MDBBZ)、救助金额
    SELECT
    substr(a.xzqh, 1, 4) AS xzqh,
    (
    SELECT
    xjgmc
    FROM
    mz_xzjg c
    WHERE
    c.node_id = substr(a.xzqh, 1, 4)
    ) AS xjgmc,
    0 jzrs_db,0 MDBBZ_db,0 jzje_db,
    sum(a.MXSRS) AS jzrs_kn,
    -- MAX(a.MDBBZ) AS MDBBZ,
    a.MDBBZ AS MDBBZ_kn,
    sum(a.MZJZJE) AS jzje_kn
    FROM
    sr_main_da a,
    mz_xzjg_da b
    WHERE
    a.xzqh = b.xzqh_id
    AND a.SYS_SCBJ = 0
    AND a.SYS_SPZT = 1
    AND a.SYS_DJZT = 1
    AND a.sjbfnf = '2019'
    AND a.sjbfyf = '07'
    AND a.mdjlx = 'kn_jz'
    GROUP BY
    substr(a.xzqh, 1, 4)
    ) e group by xzqh

    ---------------------------------------------------

    case when 作查询条件

    SELECT
    *
    FROM
    sr_main_ylyj a,
    mz_xzjg b
    WHERE
    a.sys_xzqh = b.xzqh_id
    AND b.node_id LIKE '33%'
    AND sys_scbj = 0
    AND a.sys_spzt = 0
    AND (
    CASE
    WHEN a.msfczdx IS NOT NULL
    and a.msfczdx <>''
    THEN
    0
    ELSE
    1
    END
    ) = '0'

    ----------------------------------------------

    统计重复的数据

    select count(1) as count,mhzsfz from sr_main GROUP BY mhzsfz HAVING count>1;

    -------------------------------------------

    过滤重复的数据ORDER BY

    select mhzsfz from sr_main  GROUP BY mhzsfz ORDER BY mhzsfz limit 1000;

    ---------------------------------------------------

    -- 查询结果作为查询结果的字段

    SELECT
    a.pk_sr_main AS pk_id,
    a.mdjlx,
    a.sys_xzqh,
    (
    SELECT
    count(1)
    FROM
    sr_detail
    WHERE
    fk_sr_main = a.pk_sr_main
    AND sys_scbj = 0
    ) AS mjtrk
    FROM
    sr_main a,
    mz_xzjg b
    WHERE
    a.sys_xzqh = b.xzqh_id
    AND a.pk_sr_main = ?

    -----------------------------------------------------------------------------------

    SELECT
    ? AS pk_hc_jz,
    mhz AS jsqr,
    '01' AS jzjlx,
    mhzsfz AS jzjhm,
    mjthkxz AS jhkxz,
    mjtrk AS jjtzrk,
    mzp AS jzp,
    mzpurl AS jzpurl,
    mlxdh AS jlxdh,
    msjhm AS jsjhm,
    mhkszd AS jhjdz,
    msjjzd AS jjzdz,
    mjtnzsr AS jkzpsrbgzj,
    mjtzzc AS jhdrqzcbgzj,
    mjtcczj AS jhdrqccbgzj,
    sys_xzqh,
    qhmc AS qhmc,
    xzqh AS xzqh,
    ? AS sys_zdr,
    ? AS sys_zdrid,
    ? AS sys_zdrq,
    0 AS sys_scbj,
    0 AS sys_spzt,
    ? AS sys_sjbj,
    '12' AS jhdsjd ,? AS jhdksrq ,? AS jhdjsrq ,? AS jzslbh ,? AS jhdxmbh ,? AS jhdxm,
    pk_sr_main AS fk_wtyw_id,
    0 AS jthbj,
    mjtlb AS jz_xm_sam20,
    ? AS jhdrq,
    ? AS jhdpc,
    2 AS sys_tjzt,
    (
    CASE
    WHEN mgshd = 2 THEN -- 用于公示期发起核对:0:待发送,2:核对中,1:已核对
    2
    WHEN msyhd = 1 THEN -- 是否发起赡养人核对:1:是,0:否
    1
    ELSE
    0
    END
    ) AS jsyhd,
    CASE (
    CASE
    WHEN mjtlb = 1 THEN -- mjtlb: 1=收入型低保;2=支出型贫困;3=残疾人单列户施保;5=重病型单列户施保
    bz_str3 -- 收入型低保银行核查标准
    WHEN mjtlb = 2 THEN
    zcx_yhbz -- 支出型贫困银行核查标准
    WHEN mjtlb = 3 THEN
    cjr_yhbz -- 残疾人单列户施保银行核查标准
    ELSE
    zbx_yhbz -- 重病型单列户施保银行核查标准
    END
    )
    WHEN 1 THEN
    b.sbz * 48 * mxsrs
    ELSE
    b.sbz * 48 * mjtrk
    END AS jhdbz,
    b.sbz * mxsrs * b.xm_str16 AS jrsbz, -- xm_str16:家庭核查收入计算月份
    mxsrs AS jz_bz_sam01,
    (
    SELECT
    count(1)
    FROM
    sr_detail
    WHERE
    fk_sr_main = PK_SR_MAIN
    AND dryxxlb = 'sy'
    ) * b.sbz * 12 * 10 AS jhdbz_sy,
    b.xm_str16 AS jjtsrjsyf
    FROM
    sr_main a,
    sr_dbbz b
    WHERE
    substr(a.sys_xzqh, 1, 6) = b.sjid
    AND REPLACE (a.mjthkxz, 0, '') = b.syj7
    AND a.mdjlx = b.sdjlx
    AND b.sys_scbj = 0
    AND b.bz_str1 = 1
    AND pk_sr_main = ?

  • 相关阅读:
    过河卒 NOIp 2002 dp
    [POI2014]KUR-Couriers BZOJ3524 主席树
    【模板】可持久化线段树 1(主席树)
    EXPEDI
    取石子游戏 BZOJ1874 博弈
    【模板】文艺平衡树(Splay) 区间翻转 BZOJ 3223
    关于表白
    POJ 1951
    Codeforces 1032F Vasya and Maximum Matching dp
    Codeforces 1016F Road Projects
  • 原文地址:https://www.cnblogs.com/tongcc/p/12269015.html
Copyright © 2011-2022 走看看