В Spark мы можем предоставить сложные агрегаты с осью. например
project.groupBy("mgr","job").pivot("job").agg(sum(project.col("salary")).alias("ss") * count("*").alias("c"))
Данные ниже, т.е. проект
mgr | deptno | salary | job |
---|---|---|---|
APAC | 10 | 100 | CLERK |
APAC | 20 | 200 | MANAGER |
APAC | 20 | 300 | CLERK |
APAC | 10 | 400 | CLERK |
JPAC | 20 | 1000 | CLERK |
JPAC | 10 | 2000 | MANAGER |
EMEA | 20 | 10000 | CLERK |
EMEA | 20 | 40000 | MANAGER |
EMEA | 20 | 30000 | CLERK |
Вывод :
mgr | job | CLERK | MANAGER |
---|---|---|---|
EMEA | MANAGER | null | 40000 |
JPAC | MANAGER | null | 2000 |
EMEA | CLERK | 80000 | null |
JPAC | CLERK | 1000 | null |
APAC | CLERK | 2400 | null |
APAC | MANAGER | null | 200 |
Могу ли я написать аналогичный SQL-запрос, используя сводную базу данных оракула?