Обложка канала

LEFT JOIN

5709 @leftjoin

Канал Николая Валиотти об аналитике и визуализации данных, data science и BI

LEFT JOIN

4 года назад
Открыть в
Не пора ли менять стандарт SQL? На глаза попалось несколько ссылочек на эту тему: 1. PRQL — Pipelined Relational Query Language. Его идея в том, чтобы представить обращение к базе данных как логически выстроенный пайплайн трансформаций. Например, вместо такого запроса
SELECT TOP 20
    title,
    country,
    AVG(salary) AS average_salary,
    SUM(salary) AS sum_salary,
    AVG(salary + payroll_tax) AS average_gross_salary,
    SUM(salary + payroll_tax) AS sum_gross_salary,
    AVG(salary + payroll_tax + benefits_cost) AS average_gross_cost,
    SUM(salary + payroll_tax + benefits_cost) AS sum_gross_cost,
    COUNT(*) as count
FROM employees
WHERE salary + payroll_tax + benefits_cost > 0 AND country = 'USA'
GROUP BY title, country
ORDER BY sum_gross_cost
HAVING count > 200
запрос на PRQL будет выглядеть так:
from employees
filter country = "USA"                           
let gross_salary = salary + payroll_tax          
let gross_cost   = gross_salary + benefits_cost  
filter gross_cost > 0
aggregate by:[title, country] [                  
    average salary,                              
    sum     salary,
    average gross_salary,
    sum     gross_salary,
    average gross_cost,
    sum     gross_cost,
    count,
]
sort sum_gross_cost                            
filter count > 200
take 20
ИМХО, не выглядит существенно удобнее / читаемее. А вы как считаете? 2. Malloy — другая попытка заменить SQL от Looker (однако есть примечание, что этот эксперимент без поддержки Google). Запрос выглядит вот так:
query: table('malloy-data.faa.flights') -> {
  where: origin: 'SFO'
  group_by: carrier
  aggregate: [
    flight_count is count()
    average_flight_time is flight_time.avg()
  ]
}
В общем, резюме: каждая метла метет по своему 🥸 А как вам эти варианты замены SQL, что думаете?
GitHub - max-sixty/prql: PRQL is a modern language for transforming data — a simpler and more powerful SQL

PRQL is a modern language for transforming data — a simpler and more powerful SQL - GitHub - max-sixty/prql: PRQL is a modern language for transforming data — a simpler and more powerful SQL

GitHub