您好,登錄后才能下訂單哦!
PostgreSQL 支持遞歸查詢和分組統計,下面是兩種情況的示例。
假設我們有一個表格 employees
,其中包含員工的信息,包括他們的上級(通過 manager_id
字段)。我們想要查詢每個經理的直接下屬。
WITH RECURSIVE employee_hierarchy AS (
SELECT id, name, manager_id, 1 as level
FROM employees
WHERE manager_id IS NULL
UNION ALL
SELECT e.id, e.name, e.manager_id, eh.level + 1
FROM employees e
JOIN employee_hierarchy eh ON e.manager_id = eh.id
)
SELECT * FROM employee_hierarchy;
這個查詢首先從沒有上級(manager_id IS NULL
)的員工開始,然后遞歸地添加下屬。結果將顯示每個員工及其在層次結構中的級別。
假設我們有一個表格 orders
,其中包含訂單信息,以及一個表格 order_items
,其中包含每個訂單的項目。我們想要計算每個訂單的總金額并按日期分組統計。
SELECT o.date, SUM(oi.price * oi.quantity) as total_amount
FROM orders o
JOIN order_items oi ON o.id = oi.order_id
GROUP BY o.date;
這個查詢首先連接 orders
和 order_items
表格,然后按 o.date
分組,并計算每個訂單的總金額(SUM(oi.price * oi.quantity)
)。結果將顯示每個日期的訂單總金額。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。