Oracle-计算列的不同值

Oracle-计算列的不同值,oracle,count,Oracle,Count,我有这张桌子: Reason|Area_Code|Id x dig 1 x dig 2 y dig 3 h util 4 x dig 5 我正在尝试一个SQL,它返回: Reason|Amount of distinct Reason|Area_code x 3 dig y 1

我有这张桌子:

Reason|Area_Code|Id
x         dig     1
x         dig     2
y         dig     3
h         util    4
x         dig     5
我正在尝试一个SQL,它返回:

Reason|Amount of distinct Reason|Area_code
x              3                  dig
y              1                  dig
h              1                  util
我将使用此结果绘制图表。我不知道如何实现这个SQL。你能帮我吗?

试试这个:

  Select Reason, Count(*) AmountOfReason, Area_Code
  From Table
  Group By Reason, Area_Code
。。。但这假设区域代码总是由原因决定的,也就是说,它们总是成对的,在yr表中没有两行

x   util   5
x    dig   6
因为如果是这样的话,这就行不通了

试试这个:

  Select Reason, Count(*) AmountOfReason, Area_Code
  From Table
  Group By Reason, Area_Code
。。。但这假设区域代码总是由原因决定的,也就是说,它们总是成对的,在yr表中没有两行

x   util   5
x    dig   6

因为如果是这样的话,这就行不通了

嗨,查尔斯,你的评论是对的。我的意思是,在这个表中,永远不会有2行作为示例。但我试过你的建议,结果无效。我得到了他的错误:“没有一个单独的组函数”,那么你的sql和上面的不一样。您是否正试图在另一个sql查询中使用此想法?无论何时使用聚合函数(如Count(*),都必须有一个包含特定内容的Group By子句,并且必须遵循一些规则来管理select子句中允许使用的其他表达式。Charles你说得对,我没有使用Group By。它确实有效。非常非常感谢你!嗨,查尔斯,你的评论是对的。我的意思是,在这个表中,永远不会有2行作为示例。但我试过你的建议,结果无效。我得到了他的错误:“没有一个单独的组函数”,那么你的sql和上面的不一样。您是否正试图在另一个sql查询中使用此想法?无论何时使用聚合函数(如Count(*),都必须有一个包含特定内容的Group By子句,并且必须遵循一些规则来管理select子句中允许使用的其他表达式。Charles你说得对,我没有使用Group By。它确实有效。非常非常感谢你!