У меня есть набор данных, который выглядит следующим образом (есть и другие столбцы, но эти значимые из них):Нужна помощь, пытаясь причислить сгруппированных значения по месяцам
**Month | Revenue | Segment**
01/01/2016 | $40,000 | Seg XYZ
Я пытаюсь присвоить ранг каждый сегмент основан на доходах по месяцам. Поэтому, если в январе для второй части есть вторая строка в 30 000 долларов, у меня будет ранг 1 для первой строки и 2 для второй строки. Это повторяется через сегменты и месяцы.
Это мой запрос:
Select
a.*
<br>,case when @d=month then @r:[email protected]+1
<br>else @r:=1 end as rank
<br>,@d:=month as stuff
<br>from
<br>(select month
<br>,sum(Revenue) as Revenue
<br>,segment from final_audience_usage_file
<br>group by month, segment) a
<br>join
<br>(select @r:=0,@d:=0)d
<br>order by month, revenue desc
я получаю эту ошибку: данных усечена: Неправильное значение даты: «0» для столбца «месяц» в строке 1
Я проверил данные , и нет нулей, но тот факт, что он находится в первой строке, заставляет меня поверить, что то, что я делаю, меняет это на ноль. Есть предположения?
Я не знаю, почему вы делаете это объединение 'join (выберите @r: = 0, @ d: = 0) d'. Я предполагаю, что это устанавливает его в нуль –
Я предполагаю, что по «месяцу» вы имеете в виду ** месяц и год **, правильно? В любом случае вы должны выбрать извлеченный месяц и год всех записей и упорядочить их с помощью 'month_year asc, income desc'. – FDavidov