之前看过相关资料知道在count的时候需要注意count字段中的null值
比如count(name),如果name有null,则不计入,所以大部分情况下我都用的count(1)或者count(*)
本次sql样例如下
SELECT
round(CAST(SUM(fcontractmoney) as numeric)/10000,2) AS money,count(1) as num,ta.contractType
FROM
(
select 'SG' as fcontracttype, '施工' as contractType
union
select 'JC', '监测'
union
select 'SGJL', '施工监理'
union
select 'KC', '勘察'
union
select 'SJ', '设计'
union
select 'KCSJJL', '勘察设计监理'
union
select 'ZJZX', '造价咨询'
union
select 'ZBDL', '招标代理'
union
select 'SYJC', '试验检测'
union
select 'KCSJ', '勘察设计'
union
select 'QGCZX', '全过程咨询'
union
select 'HP', '环评'
union
select 'SB', '水保'
union
select 'QT', '其他'
) ta
left join
(
select * from t