我的RUBY代碼以下列方式執行 oracle 查詢,但我似乎收到錯誤訊息:
Java::JavaSql::SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 運算式
SELECT
"REQUESTS".*
FROM
"REQUESTS"
WHERE
(
customer_id = 1
AND request_method != 'OPTIONS'
AND request_time BETWEEN TO_TIMESTAMP('2021-10-29 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND TO_TIMESTAMP(
'2021-11-05 23:59:59.000999',
'YYYY-MM-DD HH24:MI:SS.FF'
)
)
GROUP BY
"REQUESTS"."REQUEST_TIME"
最初被翻譯成上述選擇查詢的代碼是:
requests = Request.where("customer_id = ? AND request_method != ? AND request_time BETWEEN TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI:SS.FF')", customer.id, 'OPTIONS', start_time, end_time).group('date(request_time'))
這
.group('date(request_time') is translated in oracle to: GROUP BY date(request_time)
但它似乎也不起作用這是原始查詢,原因是因為 Oracle 沒有這個功能,所以我改變了它并一直在以不同的方式嘗試但似乎無法弄清楚為什么該組按表達行不通。
uj5u.com熱心網友回復:
select * 表示“選擇所有列”。
Group by 子句說group by request_time,這只是一列,這行不通。
你必須適用group by于所有的列(指定一個接一個),或-簡單-使用select distinct。
基本上,我們group by在select列串列中有聚合時使用。如果沒有,你就沒有group by。
你真正要做什么取決于你想做什么,即你期望的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/349308.html
標籤:甲骨文
