我有一个数据集充满了比赛车手与记录他们的每一圈时间为10圈。要求不显示圈时间,而只是每一圈的排名(前)。( Jeff Gordon Lap 1: 1,Lap 2: 5,Lap 3: 9,Lap 4: 3,等等)
我有pgadmin,tableau和excel来完成这个任务。任何声音的方向都将不胜感激。
发布于 2014-03-24 14:51:29
你并没有给我们很多关于你的桌子的细节,但大概是:
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;有关窗口功能的更多细节见手册:
发布于 2014-03-25 15:55:38
正如a_horse_with_no_name所建议的,窗口函数非常有用。如此之多,Tableau提供的表计算函数基本上遵循相同的设计和函数名称--允许您通过SQL在服务器端或在客户端以表calc的形式进行计算,这取决于哪种方法更方便您。
要查看的Tableau函数是秩()、rank_dense()、rank_modified()、rank_percentile()和rank_unique()。您还在Tableau中为您的计算设置了“计算使用”信息,它们是SQL窗口函数中的"partition“和"order”子句的模拟。
https://stackoverflow.com/questions/22612649
复制相似问题