0

请帮助我不知道我做错了什么。

select state, count(CID)
from customers
group by CID asc;

我正在尝试根据与之关联的唯一 CID 的数量按升序排列状态。我不断收到此错误:

ORA-00979: 不是 GROUP BY 表达式 00979. 00000 - “不是 GROUP BY 表达式” *原因:*操作:行错误:2 列:3

4

2 回答 2

2

如果要对结果集进行排序,则需要使用该order by子句,如下所示。

此外,您想要而group by state不是by CID.

select 
  state, 
  count(distinct CID) 
from 
  customers  
group by 
  state
order by 
  count(distinct CID) asc;

由于您的问题提到了唯一的 CID 相关联(我不是 100% 确定如何解释),您可能需要考虑使用count(distinct CID)而不是count(CID).

于 2013-11-14T09:54:30.970 回答
2

您混合了 ORDER BY 和 GROUP BY 语句。正确的查询应该是这样的:

select state, count(CID)
from customers
group by state
ORDER BY 2 asc

为了获得唯一 CID 的计数,您需要在 COUNT 函数中添加 DISTINCT 语句:

select state, count(DISTINCT CID)
from customers
group by state
ORDER BY 2 asc
于 2013-11-14T10:00:55.840 回答