0
У меня есть БД с бревнами TSTAMP USERNAME SUBCR_TYPE и БАЛАНСОМ. Я хочу знать, сколько пользователей были на каждый прошедший конце месяца положительного сальдо по SUBSCR_TYPECOUNT (DISTINCT на конце месяца
результирующей таблицы должно выглядеть следующим образом
silver|gold|platinum
2011-09 34|56 |109
2011-10 23|43 |67
2011-11 33|56 |45
.
.
.
Я попытался это с явно ошибочными результатами
SET @ts = unix_timestamp(LAST_DAY('2011-09-01'));
SELECT COUNT(DISTINCT USERNAME) AS 'silver'
FROM accLog_table
WHERE BALANCE>=1
AND SUBSCR_TYPE = 'silver'
AND TSTAMP<@ts
, как я могу сделать это правильно?
Это не отвечает без дополнительной информации о семантике таблицы. Когда создается запись с созданным балансом? Я предполагаю, что вы хотите выбрать самую последнюю запись для каждого пользователя, которая находится до конца месяца (которая может быть в месяц или годы раньше, если в последнее время не было никакой активности), а затем суммировать эти записи по типу подписки. Но это только догадка, вам придется прояснить вопрос. –
Ваша догадка правильная. Запись с балансом была создана по активности. Пользователь действительно может быть последним активным 8 месяцев назад и все еще имеет положительный баланс, поэтому он должен считаться 1 месяцем. Думаю, это точно моя проблема. ДБ только возвращается 8 месяцев, если это облегчает ситуацию. – lunacafu
Я начал делать учет в каждом конце месяца, что облегчает процесс. Мне просто нужны цифры за прошлые пропущенные месяцы. – lunacafu