【问题标题】:Why doesn't 'group by' function in my syntax work?为什么 \'group by\' 在我的语法中不起作用?
【发布时间】:2023-02-09 17:33:11
【问题描述】:

我是使用 Google BigQuery 的 SQL 初学者,我编写了一个语法来通过“价格”和“类别”以及某种“状态”找到畅销书。这是语法:

SELECT
 oi.product_id
, p.category as product_category
, DATE_TRUNC(oi.created_at, MONTH) AS month_order
, oi.status as status_order
, ROUND(SUM(oi.sale_price)) as subtotal_price
FROM
  `bigquery-public-data.thelook_ecommerce.order_items` oi
LEFT JOIN
  `sql-project-376612.thelook_ecommerce.products` p
ON
  oi.product_id=p.id
WHERE DATE(oi.created_at) BETWEEN '2022-12-01' AND '2022-12-31'
  AND oi.status = 'Shipped'
  AND p.category IS NOT NULL
GROUP BY p.category
ORDER BY 5 DESC

请帮我找出为什么 Group By 功能不起作用?提前致谢,伙计。

我已经使用 excel 找到了答案,因为使用 sql 不能:(

【问题讨论】:

  • 您通常 GROUP BY 与您 SELECT 相同的列 -除了那些作为参数设置函数的人.
  • 我已经从 SELECT 中删除了 p.category,但它仍然不起作用

标签: sql group-by google-bigquery syntax aggregate


【解决方案1】:
`SELECT
 oi.product_id
, p.category as product_category
, DATE_TRUNC(oi.created_at, MONTH) AS month_order
, oi.status as status_order
, ROUND(SUM(oi.sale_price)) as subtotal_price
FROM
  `bigquery-public-data.thelook_ecommerce.order_items` oi
LEFT JOIN
  `sql-project-376612.thelook_ecommerce.products` p
ON
  oi.product_id=p.id
WHERE DATE(oi.created_at) BETWEEN '2022-12-01' AND '2022-12-31'
  AND oi.status = 'Shipped'
  AND p.category IS NOT NULL
GROUP BY oi.product_id
, p.category
, DATE_TRUNC(oi.created_at, MONTH)
, oi.status
ORDER BY 5 DESC`

【讨论】:

    猜你喜欢
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2020-05-23
    • 1970-01-01
    • 2015-09-23
    • 2011-02-16
    • 2021-10-30
    相关资源
    最近更新 更多