[英]Extracting entries from a specific month in SQL
我正在嘗試從名為orders
的表中計算 3 月份每個客戶購買的總收入,其中order_date
的格式為datetime
時間(例如 2019-03-04)。 但是,我無法通過以下任一選項獲得結果:
WITH cte_orders AS
(
SELECT
cust_id,
SUM(order_quantity * order_cost) AS revenue
FROM
orders
WHERE
DATEPART('month', order_date) = 3
GROUP BY
cust_id
)
SELECT cust_id, revenue
FROM cte_orders;
還
WHERE EXTRACT(month from order_date) = '03'
或者
WHERE MONTH(order_date) = 03
也不行。 我的語法有什么問題?
感謝大家的投入,終於找到了正確的方法:
WITH cte_orders AS
(
SELECT
cust_id,
SUM(order_quantity * order_cost) AS revenue,
FROM
orders
WHERE
EXTRACT('MONTH' FROM order_date :: TIMESTAMP) = 3
GROUP BY
cust_id
)
SELECT cust_id, revenue
FROM cte_orders;
有了這個,它將日期轉換為時間戳並根據需要提取三月。
date_part
呢?
WITH cte_orders AS
(select cust_id
, SUM(order_quantity * order_cost) as revenue
from orders
WHERE date_part('month',TIMESTAMP order_date) = 3
group by cust_id)
select cust_id, revenue from cte_orders;
您是否考慮將 WHERE 子句放在 CTE 之外?
WITH cte_orders AS
(
SELECT
cust_id,
SUM(order_quantity * order_cost) AS revenue
FROM
orders
WHERE
DATEPART('month', order_date) = 3
GROUP BY
cust_id
)
SELECT cust_id, revenue
FROM cte_orders
WHERE MONTH(order_date) = 03;
此外,如果您讓我們知道您獲得了什么(如果有的話)結果,將會很有幫助。 您是收到錯誤消息還是只是沒有返回預期值/行數?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.