首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery:使用CAST、GROUP BY和CAST

BigQuery:使用CAST、GROUP BY和CAST
EN

Stack Overflow用户
提问于 2022-08-30 17:47:48
回答 1查看 80关注 0票数 0

我正在尝试使用拥有一个组,但我得到了这个错误:

选择列表表达式引用sales_order.SalesOrderDateTime,它既不分组也不聚合在2:8

该字段位于SELECT列表和GROUP BY中,但它是CAST的一部分,因为我不想要日期时间的时间戳部分。它不需要在另一个表上使用CAST,而该表的格式已经是YYYY。它也应该在这里起作用。有办法绕道吗?

我试过使用STRING FORMAT 'YYYY-MM-DD',但这也不起作用。

代码语言:javascript
复制
SELECT 
  CAST(sales_order.SalesOrderDateTime AS DATE) as created_at,
  sales_order.SalesOrderNo as order_id,
  sales_order.SellToEmail as customer_email,
  sum(sales_order_item.OriginalPrice)*100 as total_amount_cents,
  max(sales_order.TotalDiscountAmount)*100 as discount_amount_cents
FROM `my_dw.external_datamart_1.SalesOrder_view` 
WHERE CAST(sales_order.SalesOrderDateTime AS DATE) >= '2022-01-01'
GROUP BY CAST(sales_order.SalesOrderDateTime AS DATE), sales_order.SalesOrderNo, sales_order.SellToEmail
-- This does not work with CAST
HAVING sum(sales_order_item.OriginalPrice) > max(sales_order.TotalDiscountAmount)
LIMIT 1000
)

当然,CTE是可行的,但如果可能的话,我想避免。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-31 11:40:50

你可以试试这个:

代码语言:javascript
复制
group by 1,2,3

而不是使用完整的表达式。

在复杂的查询中,我经常会遇到同样的问题。我认为这是一个bug,可以在这里报告,https://issuetracker.google.com/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73546589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档