У меня есть таблица mysql с столбцом даты. дата тип данных столбца TIMESTAMP и набор по умолчанию CURRENT_TIMESTAMP которые записывают как дата и времяКоличество строк mysql почасовой для данной даты
Теперь я хочу, чтобы подсчитать свои ряды под конкретный день
В качестве примера
++++++++++ 8am 9am 10am 11am
++user1+++ 15 10 11 10
++user2+++ 10 10 20 30
Каждый час счетчик должен быть записывается отдельно, как это.
я пытался с этим, но это не работает
SELECT COUNT(*) FROM mytable
WHERE `date` = '2015-01-26'
GROUP BY HOUR(`TIMESTAMP`)
как я могу этого достичь?
Я понятия не имею, как сгруппировать с пользователем. sproc также хорошо
Я сделал sproc вот так. но этот sproc содержит ошибки. может кто-то пожалуйста, помогите мне, теперь я хочу, чтобы посчитать это разделенным 9 часов
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `test22`(IN datestamp DATE)
BEGIN
SELECT username,
COUNT(if(disblid,1,null)) '8:00 AM', where time between '08:00' and '09:00':
COUNT(if(disblid,1,null)) '9:00 AM' , where time between '09:00' and '10:00';
FROM claimloans
WHERE DATE(date) = datestamp
group by Username;
END
Спасибо всем, кто помог мне, что я придумал sproc, что работает прекрасно.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `claimscounter`(IN datestamp DATE)
BEGIN
SELECT username,
COUNT(IF(HOUR(date)=0,1,NULL)) AS '12am',
COUNT(IF(HOUR(date)=1,1,NULL)) AS '1am',
COUNT(IF(HOUR(date)=2,1,NULL)) AS '2am',
COUNT(IF(HOUR(date)=3,1,NULL)) AS '3am',
COUNT(IF(HOUR(date)=4,1,NULL)) AS '4am',
COUNT(IF(HOUR(date)=5,1,NULL)) AS '5am',
COUNT(IF(HOUR(date)=6,1,NULL)) AS '6am',
COUNT(IF(HOUR(date)=7,1,NULL)) AS '7am',
COUNT(IF(HOUR(date)=8,1,NULL)) AS '8am',
COUNT(IF(HOUR(date)=9,1,NULL)) AS '9am',
COUNT(IF(HOUR(date)=10,1,NULL)) AS '10am',
COUNT(IF(HOUR(date)=11,1,NULL)) AS '11am',
COUNT(IF(HOUR(date)=12,1,NULL)) AS '12pm',
COUNT(IF(HOUR(date)=13,1,NULL)) AS '1pm',
COUNT(IF(HOUR(date)=14,1,NULL)) AS '2pm',
COUNT(IF(HOUR(date)=15,1,NULL)) AS '3pm',
COUNT(IF(HOUR(date)=16,1,NULL)) AS '4pm',
COUNT(IF(HOUR(date)=17,1,NULL)) AS '5pm',
COUNT(IF(HOUR(date)=18,1,NULL)) AS '6pm',
COUNT(IF(HOUR(date)=19,1,NULL)) AS '7pm',
COUNT(IF(HOUR(date)=20,1,NULL)) AS '8pm',
COUNT(IF(HOUR(date)=21,1,NULL)) AS '9pm',
COUNT(IF(HOUR(date)=22,1,NULL)) AS '10pm',
COUNT(IF(HOUR(date)=23,1,NULL)) AS '11pm'
FROM claimloans
WHERE DATE(date) = datestamp
group by username;
END
Но теперь у меня есть еще одна небольшая проблема. Это отсчитывает все часы. если он не входит в течение часа, он считается равным нулю. Я хочу, чтобы сосчитать часов только записи кто-то может помочь мне с этим
Thnaks
Это сводный запрос, а mysql их не поддерживает. сделайте поворот в своем коде клиента и сохраните себе много волоса. –
сэр, пожалуйста, расскажите мне об этом подробнее. У меня мало знаний в SQl –
сэр, я написал sproc, можете ли вы заглянуть туда? –