У меня есть запрос MySQL, который вытягивает в Excel через соединение ODBC. Этот запрос определяет топ-5 по группам в порядке убывания для данных, которые он извлекает, и присваивает им ранжирующий номер (от 1 до 5 в порядке значений на каждый уникальный элемент в группе).
- Проблема в том, что когда данные импортируются в Excel, все значения поля 'rank' устанавливаются на 1 (они должны варьироваться от 1 до 5) вместо правильных чисел. Я перепробовал множество вещей, но не могу понять, почему Excel делает это.
Я использую MySQL и Excel 2010.
Вещи, которые я пробовал:
1) Создание нового соединения
2) Приведение выходного ранга в качестве символа
3) Объединение ранга с текстом в виде строки.
4) удаление листа и воссоздание его.
5) изменение порядка столбцов в sql
Спасибо за любую помощь, которую вы можете предоставить. Перефразированный запрос ниже.
select
rank,
center,
supervisor_id,
missed,
box,
missed_percent
from
(select
supervisor_id,
missed,
box,
missed_percent,
@ranking := if(@warehouse = center, @ranking + 1,1) as rank,
@warehouse := center as center
from
(select
a.center,
f.supervisor_id,
sum(missed) as missed,
count(box) as box,
sum(missed) / count(box) as missed_percent,
(SELECT @ranking:= 0) s
from
seventy_subquery_table
left join people f on a.employee_id = f.employee_id
group by
a.center,
f.supervisor_id
) m
order by center, missed_percent desc
) m2
where m2.rank <= 5
order by center, rank