我正在将Oracle查询移植到Oracle。插入...用Oracle中的组选择结果太多值
INSERT INTO
"stagedInserts" ("systemId", "timestamp")
SELECT
:systemId AS "systemId", "d"."time" AS "timestamp"
FROM
"data" "d"
WHERE
"d"."systemId" = :systemId
GROUP BY
TRUNC("d"."time"/900)
的GROUP BY旨在是的"time" DIV 900
在MySQL等效,以确保我们最终只有一个为每个15分钟(900秒)间隔时间戳记。
查看上述查询结果为ORA-00979: not a GROUP BY expression
。
但是,如果我的组添加到SELECT,所以我们结束:
SELECT
:systemId AS "systemId", "d"."time" AS "timestamp", TRUNC("d"."time"/900)
它导致:ORA-00913: too many values
。
我该如何解决这个问题?
这是一个mySQL似乎被“破坏”给我们这些不使用它的人的例子!如果你的'data'表包含时间值为1,2,3,... 899的':systemId'的行,那么mySQL在'time/900'分组后将'storedInserts'中存储哪一个?无论答案是什么,它都是任意的。 –