请帮助我不知道我做错了什么。
select state, count(CID)
from customers
group by CID asc;
我正在尝试根据与之关联的唯一 CID 的数量按升序排列状态。我不断收到此错误:
ORA-00979: 不是 GROUP BY 表达式 00979. 00000 - “不是 GROUP BY 表达式” *原因:*操作:行错误:2 列:3
如果要对结果集进行排序,则需要使用该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)
.
您混合了 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