Как правило, postgres эквивалент этой команды "spark"
val win = Window.partitionBy("department", "state").orderBy(col("salary").desc)
val h = df.withColumn("row", row_number.over(win)).where($"row" === 1).drop("row")
Таким образом, эта ranks
зарплата на департамент для каждого штата и затем занимает только первый ряд, что дает вам самую высокую зарплату для каждый отдел в каждом штате. Как я могу выполнить этот запрос в postgres SQL?
Пример: Дано
+-------+----------+------+-----+
| Name|Department|Salary|State|
+-------+----------+------+-----+
| James| Sales| 3000| CA|
|Michael| Sales| 4600| CA|
| Robert| Sales| 4100| MA|
| Jimmy| Sales| 5100| MA|
| Maria| Finance| 3000| CA|
| Raman| Finance| 3200| CA|
| Scott| Finance| 3300| AZ|
| Jen| Finance| 3900| AZ|
| Mary| Finance| 2200| MA|
| Jeff| Marketing| 3000| AZ|
| Rick| Marketing| 2000| AZ|
| Momer| Marketing| 1500| CA|
| Jun| Marketing| 2500| CA|
| Bobby| Marketing| 3100| CA|
+-------+----------+------+-----+
Running spark Window partition above gives me
scala> h.show
+-------+----------+------+-----+
| Name|Department|Salary|State|
+-------+----------+------+-----+
| Mary| Finance| 2200| MA|
| Jimmy| Sales| 5100| MA|
|Michael| Sales| 4600| CA|
| Bobby| Marketing| 3100| CA| // Highest salaries in each department in each state
| Jen| Finance| 3900| AZ|
| Raman| Finance| 3200| CA|
| Jeff| Marketing| 3000| AZ|
+-------+----------+------+-----+
Что такое postgres SQL эквивалент вышеупомянутого искрового запроса?