【发布时间】:2021-04-02 18:27:52
【问题描述】:
我正在尝试从名为 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
也不行。我这里的语法有什么问题?
【问题讨论】:
-
您确定 order_date 被视为日期时间对象吗?尝试将其投射到前行,看看是否是问题所在。只是一个想法,语法和逻辑对我来说似乎是正确的。
-
你使用什么 rdbms?
-
@snr PostgreSQL
-
能否提供minimal reproducible example,以便我们更好地理解问题
-
您可能更容易提供该链接。但是我必须创建一个帐户才能使用它;我不想要的帐户。在此处提供minimal reproducible example 或创建fiddle。请记住,社区越难,您获得和回答的可能性就越小。
标签: sql postgresql datetime extract