ранжирование набора данных в SQL, Excel или таблице?

У меня есть набор данных, заполненный гонщиками с записью времени каждого круга за 10 кругов. Просьба не показывать время круга, а только рейтинг для каждого круга (например, Джефф Гордон 1 круг: 1-й, 2 круг: 5-й, 3-й круг: 9-й, 4-й круг: 3-й и т. Д.)

Для этого у меня есть pgadmin, tableau и excel. Мы будем очень признательны за любое звуковое направление.


person SpicestMemeLord    schedule 24.03.2014    source источник


Ответы (2)


Вы не дали нам подробностей о своих таблицах, но что-то вроде:

select driver_name,
       lap_number, 
       dense_rank() over (partition by lap_number order by lap_time) as rank_in_lap,
       dense_rank() over (order by lap_time) as overall_rank
from lap_times
order by driver_name, lap_number;

Подробнее о функциях окна читайте в руководстве:

person a_horse_with_no_name    schedule 24.03.2014

Оконные функции очень полезны, как предполагает a_horse_with_no_name. Настолько, что Tableau предоставляет функции вычисления таблиц, которые в значительной степени соответствуют одному и тому же дизайну и именам функций, что позволяет вам выполнять вычисления на стороне сервера через SQL или на стороне клиента как вычисление таблицы в зависимости от того, что более удобно для вас. .

Функции Tableau, на которые следует обратить внимание, - это rank (), rank_dense (), rank_modified (), rank_percentile () и rank_unique (). Вы также установили информацию "вычислить с использованием" для ваших вычислений в Tableau, которая является аналогом предложений "partition by" и "order by" в оконной функции SQL.

person Alex Blakemore    schedule 25.03.2014