我想计算类型=" non_repondu"并按3个标准对结果进行分组。
1的client_id
2-queue_id
和
3-日期时间:按小时,天,按月和按年
到目前为止,我已经这样做了:
SELECT `client_id`,`queue_id`,`datetime`,COUNT(`type`)
AS nombre_appels_repondus
FROM `appels`
where `type`= "non_repondu"
group by `appels`.`client_id`,`appels`.`queue_id`,`appels`.`datetime
但是就像我刚刚按完整日期时间列过滤了这个结果 分别列出每个唯一的日期时间表,如何按小时获得结果 ,日,月和年???
答案 0 :(得分:2)
在group By子句中使用DATE_FORMATE()。希望它能解决你的问题
SELECT
`client_id`,
`queue_id`,
`datetime`,
COUNT(`type`) AS nombre_appels_repondus
FROM
`appels`
WHERE
`type` = "non_repondu"
GROUP BY
`appels`.`client_id`,
`appels`.`queue_id`,
DATE_FORMAT(
`appels`.`datetime`,'%Y-%m-%d %H');
或强>
如果您想在日,月,年和小时中添加所选列列表,请尝试使用
SELECT
`client_id`,
`queue_id`,
`datetime`,
DATE_FORMAT(`appels`.`datetime`, '%Y-%m-%d') AS DAY,
DATE_FORMAT(`appels`.`datetime`, '%Y-%m') AS MONTH,
DATE_FORMAT(`appels`.`datetime`, '%Y') AS YEAR,
DATE_FORMAT(`appels`.`datetime`, '%H') AS HOUR,
COUNT(`type`) AS nombre_appels_repondus
FROM
`appels`
WHERE
`type` = "non_repondu"
GROUP BY
`appels`.`client_id`,
`appels`.`queue_id`,
DATE_FORMAT(
`appels`.`datetime`,
'%Y-%m-%d %H'
);
答案 1 :(得分:0)
您需要更准确地按照声明
进行分组SELECT `client_id`,`queue_id`,`datetime`,COUNT(`type`)
AS nombre_appels_repondus
FROM `appels`
WHERE `type`='non_repondu'
GROUP BY `appels`.`client_id`,
`appels`.`queue_id`,
YEAR(`appels`.`datetime`) ,
MONTH(`appels`.`datetime`),
DAY(`appels`.`datetime`),
HOUR(`appels`.`datetime`)
答案 2 :(得分:0)
updaters = {
'90': updatevalues90,
'180': updatevalues180,
'270': updatevalues270
}
def do_update(a):
ROT = [updaters[ROTATE](char) for char in a]
# return ROT ?