【问题标题】:Oracle SQL GROUP BY issues in sub query子查询中的 Oracle SQL GROUP BY 问题
【发布时间】:2016-02-20 23:10:20
【问题描述】:

我在让我的命令工作时遇到问题,似乎无论我做什么,我都会在 SELECT customer_no 语句上继续收到 Oracle 错误。

它始终是 Not a Group By 错误或 Not a single-group group function 错误。

我们的目标是创建一个查询,以查找所有订购了聚苯乙烯泡沫塑料并具有定义尺寸的客户。对于这些客户,我还想找到他们的第一个和最后一个发泡胶订单。

SELECT DISTINCT customer_no, MIN(date), MAX(date)
FROM    (SELECT customer_no, details, city, size, order_item, state, date
         FROM (((customer JOIN region USING (location)) JOIN order USING (order_no)) 
         JOIN rep USING (emp_no))
         WHERE order_item = 'Styrofoam' AND size IS NOT NULL
         GROUP BY details, size, date, city, order_item, state);

【问题讨论】:

  • 为什么子查询中的所有额外字段?你甚至不应该需要一个。此外,customer_no 不在 group by 中,看起来应该是。尝试:SELECT customer_no, MIN(date), MAX(date) FROM [..] WHERE [..] GROUP BY customer_no

标签: sql oracle oracle11g group-by subquery


【解决方案1】:

group by 中没有customer_no。这导致了错误。但是,为什么所有的复杂性:

SELECT customer_no, MIN(date), MAX(date)
FROM  customer JOIN
      region
      USING (location) JOIN
      order
      USING (order_no) JOIN
      rep USING (emp_no)
WHERE order_item = 'Styrofoam' AND size IS NOT NULL
GROUP BY customer_no;

表的名称表明所有连接都不是必需的。例如,显然没有任何列来自名为rep 的表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-22
    • 2014-12-17
    • 2015-09-14
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多