Группировка по дням. Sql запрос
И вот задача такова: надо каким-то образом выбрать изменение баланса пользователя за каждый конкретный день, чтобы видеть динамику его игры. То есть выбрать так:
(к примеру) для userid=13 вывести такую таблицу:
datescorechange
2004-09-201234
2004-09-21509
2004-09-22-1652
Помогите написать такой запрос.
PS у поля changedate тип данных timestamp without time zone
FROM score
WHERE userid=13
GROUP BY changedate
ORDER BY changedate
Цитата:
Originally posted by rostyslav
SELECT changedate, SUM(scorechange)
FROM score
WHERE userid=13
GROUP BY changedate
ORDER BY changedate
SELECT changedate, SUM(scorechange)
FROM score
WHERE userid=13
GROUP BY changedate
ORDER BY changedate
Не получится. В поле changedate время записывается по формуле YYYY-MM-DD HH:MM:SS.XXXXXX
где X - доли секунды. Поэтому записи имеющие значения времени 2004-10-10 13:30:55.102912 и 2004-10-10 13:30:55.203442 будут восприниматься как разные... Если бы было столь простое решение я бы не задавал вопрос... задача весьма нетривиальна
FROM score
WHERE userid=13
GROUP BY DATE(changedate)
ORDER BY 1
Если сервер не разрешает подобные запросы, то скорей всего нужно еще одно поле, содержащее только дату.