是否可以使用以下方法选择字段?
SELECT *, count(FIELD) FROM TABLE GROUP BY TABLE
我收到以下错误
ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
Error at Line: 1 Column: 9
是语法错误还是您必须明确定义每个列而不是使用*?
答案 0 :(得分:3)
您无法使用*
和其他列。如果您使用别名,则可以:
SELECT t.*
, count(FIELD)
FROM TABLE t
此外,您的GROUP BY TABLE
错了。您不能按表名分组,必须指定一些列,如下所示:
SELECT t.customer
, count(FIELD)
FROM TABLE t
GROUP BY t.customer
答案 1 :(得分:2)
字段中选择的列应为
为此,您需要指明所需的字段,并且应符合上述标准。
SELECT FIELD1,FIELD2, COUNT(*) FROM TABLE1 GROUP BY FIELD1, FIELD2
如果您坚持使用查询的逻辑,则使用子查询应该会有所帮助。 例如,
SELECT * FROM TABLE1 T1 INNER JOIN (SELECT FIELD1, COUNT(FIELD1) AS [CountOfFIELD1] FROM TABLE1 T2 GROUP BY FIELD1)T3 ON T1.FIELD1=T3.FIELD1
答案 2 :(得分:1)
您需要提供列名称,而不是*
:
SELECT a, b, COUNT(FIELD)
FROM TABLE
GROUP BY a, b;