снова Я застрял в подсчете чего-то в MySQL. Структура базы данных далека от SOers'd-вызова оптимальным, но, тем не менее, я здесь не влияю и вынужден жить с ней. Вероятно that's одна из причин, почему я должен помочь еще раз, чтобы получить некоторую информацию из него :)Учитывать изменения значения с течением времени?
Предположим, у меня есть: some_id (не PK таблицы, не единственный), год, месяц (без поля даты только два целочисленных поля), some_flag (символ, который является либо A, либо B).
Теперь я хотел бы знать, как часто изменяется some_flag (за определенный промежуток времени). Временной интервал не очень важен в первом подходе, мне просто нужно знать, сколько изменений произошло. Обратите внимание, что изменения могут происходить только ежемесячно. Мой запрос:
SELECT some_id,year,some_flag FROM mytable
WHERE some_flag = "A" OR someflag = "B"
AND year > 2005
GROUP BY some_id,some_flag
HAVING COUNT(DISTINCT some_flag) > 1
возвращает пустой набор результатов. Что с этим не так? Я уверен, что есть лет, в которых флаг изменения в течение месяца ...
не является чем-то вроде
select .... , sum(case when month=month-1 and some_flag != some_flag then 1 else 0 end) as changecount
возможно?
Можете ли вы разместить некоторые данные примера и какой результат вы хотите, пожалуйста? –