对于某些机票的解决率,我想计算相对于同一月份相同类型的机票总数的已解决机票百分比 我能够获取已解决票证的数量,但是我错过了同一类型和同一月所有票证的总数,因此始终为0%或100%。 Question =如何累积票证数量,以便可以计算出每月已解决票证的百分比,类型,状态?
我按时分组,输入AND状态(请参阅下面的查询)。因此,总数始终被状态的分组依据所推翻。 我尝试过:累积,汇总,数据透视,联合
SELECT date_format(st.createdDate,'%Y%m') createdAt,
count(st.id) COUNT,
st.typeId,
st.status,
sum(st.status2) status2,
sum(st.notStatus2) notStatus2,
((sum(st.status2)/sum(st.status2)+sum(st.notStatus2))*100) AS pct
FROM
(SELECT t.id,
t.added createdDate,
t.type_id typeId,
tt.name ticketType,
t.status,
if(t.status=2,1,0) AS status2,
if(t.status!=2,1,0) AS notStatus2,
datediff(closed,added) doorloopTijdDgn
FROM tickets t
JOIN ticket_types tt ON tt.id=t.type_id
WHERE added BETWEEN '2018-07-01' AND '2019-07-01' ) AS st #singletickets
GROUP BY createdAt,
ticketType,
status;
对于前两行(类型= 62),我预计37张已解决的票中有33张= 89,2%
因此pct的“ sum(st.status2)+ sum(st.notStatus2)”应为37
现在我得到了:
createdAt count typeId status status2 notStatus2 pct
201807 33 62 2 33 0 100.0000
201807 4 62 6 0 4 NULL
201807 31 38 2 31 0 100.0000
201807 3 38 6 0 3 NULL
201807 15 12 2 15 0 100.0000
201807 11 11 2 11 0 100.0000
201807 1 48 2 1 0 100.0000
201807 19 30 2 19 0 100.0000
201807 5 9 2 5 0 100.0000
201807 12 33 2 12 0 100.0000
201807 1 52 2 1 0 100.0000
201807 2 45 2 2 0 100.0000
201807 41 58 2 41 0 100.0000
201807 3 58 6 0 3 NULL
201807 1 41 6 0 1 NULL
201807 1 13 2 1 0 100.0000
201807 35 66 2 35 0 100.0000
201807 8 20 2 8 0 100.0000
201807 1 20 4 0 1 NULL
201807 5 10 2 5 0 100.0000
201807 12 68 2 12 0 100.0000
201807 1 65 2 1 0 100.0000
201807 20 7 2 20 0 100.0000
201807 2 19 2 2 0 100.0000
201807 4 43 2 4 0 100.0000
201807 3 34 2 3 0 100.0000
201807 24 67 2 24 0 100.0000
201807 43 46 2 43 0 100.0000
201807 1 46 6 0 1 NULL
我想要什么:
createdAt count typeId status status2 notStatus2 pct
201807 33 62 2 33 0 89.2000
201807 4 62 6 0 4 0
201807 31 38 2 31 0 93.9000
201807 3 38 6 0 3 0
201807 15 12 2 15 0 100.0000
201807 11 11 2 11 0 100.0000
201807 1 48 2 1 0 100.0000
201807 19 30 2 19 0 100.0000
201807 5 9 2 5 0 100.0000
201807 12 33 2 12 0 100.0000
201807 1 52 2 1 0 100.0000
201807 2 45 2 2 0 100.0000
201807 41 58 2 41 0 93.2000
201807 3 58 6 0 3 0
201807 1 41 6 0 1 0
201807 1 13 2 1 0 100.0000
201807 35 66 2 35 0 100.0000
201807 8 20 2 8 0 88.8000
201807 1 20 4 0 1 0
我可以使用mysql 5.7.12
答案 0 :(得分:0)
似乎您输入了错误的()
应该是
IntelliJ