alexmay
@alexmay

Mysql запрос с COUNT, SUBTOTAL и GRANDTOTAL — как построить?

Без использования PHP
Имеется таблица посещений, всего 4 колонки - timestamp, ip, useragent, daynumber

Подскажите пожалуйста, как средствами MySQL (расширения допустимы) построить запрос, что бы в результирующем выводе помимо данных были строки SUBTOTAL (количество строк) и GRANDTOTAL. Считать субтоталы - по количеству строк с единым идентификатором daynumber
Т.е. примерно такой вывод необходим 5a8c41c58bd90387753848.png(см. картинку)

Спасите пожалуйста - на PHP очень получается некрасиво, когда можно все сделать средствами SQL ))
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
ivankomolin
@ivankomolin
Все эти данные из mysql используя sql вытянуть конечно можно, но не в таком виде, их все равно придется обрабатывать, чтобы получить внешний вид как у вас. А сам запрос к mysql серверу будет не оптимальным и расходовать ресурсы при выполнении.

Идеальный вариант решения задачи в данном случае получить все данные с помощью sql одним простым запросом, а уже потом привести в нужный вид на php.

Ну уже если сильно хочется то вот пример как получить все необходимые данные:
(SELECT
	timestamp, 
	ip, 
	useragent, 
	daynumber, 
	count(*) as total
FROM 
	table
GROUP BY 
	daynumber
)
UNION
(SELECT
	'' as timestamp,
	'' as ip, 
	'' as useragent, 
	'' as daynumber, 
	count(*) as total
FROM 
	table
)


Итогом будет таблица, последняя колонка которой будет показывать subtotal текущего daynumber, а в последней строке будет показывать GRANDTOTAL
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы