Как в запросе select (mysql) можно посчитать количество последних значений, равных между собой, и идущих непрерывно?
Вот пример таблицы: http://c2n.me/3Gqmp8u
В данном случае, запрос должен вернуть 2.
SELECT MAX(x.num) - MIN(x.num) result
FROM (
SELECT MAX(id_chat_message) num, is_readed
FROM `table`
GROUP BY is_readed
) x
Если в значениях id_chat_message имеются "дырки", то, например,
SELECT COUNT(*)
FROM `table`
WHERE id_chat_message > (
SELECT MIN(x.num)
FROM (
SELECT MAX(id_chat_message) num, is_readed
FROM `table`
GROUP BY is_readed
) x
)
При любом количестве возможных значений статуса и наличии хотя бы 2 записей с разными статусами вроде должен дать верный результат такой запрос:
SELECT COUNT(*)
FROM `table`
WHERE id_chat_message > (
SELECT MAX(id_chat_message)
FROM `table`
GROUP BY is_readed
ORDER BY 1 DESC
LIMIT 2,1
)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть необходимость писать все запросы к БД в файлДля этого включаю в настройках (переменные сервера) general_log=1 Однако спустя время (возможно...
Всем приветЕсть бэкап Joomla сайта, сделанный в Akeeba