У меня есть таблица с 2 полями, называемыми clc_cs_id,clc_pt_nxt_rv_dt
в моей таблице. Я пытаюсь получить счет clc_cs_id
с наивысшей датой 2016-06-25
из моего приведенного ниже примера. Я попытался дать max(clc_pt_nxt_rv_dt)='2016-06-25'
в состоянии. Но бросая invalid use of group by function
ошибки. Примеры данных приведены ниже.Как получить счетчик с самой высокой датой в качестве заданной даты в запросе mysql
clc_cs_id clc_pt_nxt_rv_dt
--------- -------------------
2 25-06-2016 00:00:00
2 27-06-2016 00:00:00
3 17-06-2016 00:00:00
3 25-06-2016 00:00:00
3 29-06-2016 00:00:00
3 29-06-2016 00:00:00
4 18-06-2016 00:00:00
4 25-06-2016 00:00:00
5 25-06-2016 00:00:00
Из вышесказанного я пытаюсь исключить clc_cs_id 3
, потому что самая высокая дата, которая является 29.06.2016. Запрос, который я пробовал, приведен ниже.
select count(clc_cs_id) from clc_case_dtls
where max(clc_pt_nxt_rv_dt) = date('2016-06-25')
group by clc_cs_id
Если кто-нибудь может помочь, это будет очень полезно для меня. Спасибо заранее.
Ожидаемый выход
COUNT(clc_cs_id)
---------------
3
предикатов в 'WHERE' положение вычисляется, когда ряды * доступа *. Значение агрегированных выражений (например, 'MAX()') недоступно при доступе к строкам. С другой стороны, предложение 'HAVING' оценивается намного позже в обработке запросов, * после того, как * были доступны строки и после операции GROUP BY, и после вычисления агрегатов. Таким образом, в предложении 'HAVING' можно включить условия для агрегатов. Это объясняет, почему MySQL возвращает ошибку. Кроме того, неясно, о чем вы спрашиваете. – spencer7593
Если 'clc_pt_nxt_rv_dt' является символьным типом данных (' CHAR' или 'VARCHAR'), а не' DATETIME' и хранится в формате, как показано в вопросе ... DD-MM-YYYY, тогда «MAX()» будет работать на * string * сравнениях ... например '22-04-2016' * больше *' 20-06-2016'. Если вам нужно найти «максимальные» значения даты, вам необходимо преобразовать строки в типы данных DATE, DATETIME или TIMESTAMP и выполнить MAX в результате этого преобразования. Тип данных MySQL DATETIME специально разработан для обработки значений даты и времени. И это тип данных, который мы используем для столбцов, хранящих значения datetime. Не характер. – spencer7593