【PostGresql】----- sql多表关联按条件统计汇总代码完整示例

 1. 汇总需求:

    对企业所上传目录类型文件数量及状态进行统计汇总

    ORG_DEPARTMENT : 企业表

    PUB_FILES : 文件表

1.1 代码示例如下: 

SELECT T.*,
CASE WHEN T."FILECOUNT" > 0 THEN'已' ELSE'未' END "FLAG",
CASE WHEN T."FILECOUNT" >= 0 THEN '其他与“三同时”项目相关的文件' ELSE'其他与“三同时”项目相关的文件' END "MLNAME" 
FROM
	(
		(
		SELECT
			"ORG"."ID",
			"ORG"."CNAME",
			"ORG"."PNAME",
			COUNT ( "PUB"."ID" ) AS "FILECOUNT" 
		FROM
			"ORG_DEPARTMENT" AS "ORG"
			LEFT JOIN "PUB_FILES" AS "PUB" ON "ORG"."ID" = "PUB"."PUBLISH_DEP_ID" 
			AND "PUB"."PID" = '87044f8960a943ca9af830d987ebf2bf' 
			AND "PUB"."TYPE" = '安全生产清单制' 
		WHERE
			( 1 = 1 ) 
			AND ( COALESCE ( "ORG"."IS_MGR_DPT", 0 ) != 1 AND COALESCE ( "ORG"."IS_CONTRACTOR_ORG", 0 ) != 1 ) 
		GROUP BY
			"ORG"."ID",
			"ORG"."CNAME",
			"ORG"."PNAME" 
		ORDER BY  "ORG"."CODEPATH" ASC 
		) 
	) T 
ORDER BY  "FILECOUNT" DESC

1.2  sql代码注释图: 

// T 是临时表

SELECT T.*,

// case when then else 是条件判断  类似于  if  else 
// END + 字段名

CASE WHEN T."FILECOUNT" > 0 THEN'已' ELSE'未' END "FLAG",
CASE WHEN T."FILECOUNT" >= 0 THEN '其他与“三同时”项目相关的文件' ELSE'其他与“三同时”项目相关的文件' END "MLNAME" 

FROM
	(
		(

		SELECT
			+汇总字段,
			COUNT (字段名或1) AS "FILECOUNT" 
		FROM
			表1 AS "ORG"
			LEFT JOIN 表2 AS "PUB" ON +两表关联对应条件
		WHERE
			+条件语句
		GROUP BY
			+汇总字段
		ORDER BY  +排序
		) 
	) T 
ORDER BY  +排序

​

   看懂要会灵活变通

2.查询效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮冰要做大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值