我正在尝试创建一个 View ,但我一直收到错误消息,指出 FROM 子句中的子查询
需要创建这些 View
SELECT EPC_ploc, COUNT(EPC_ploc)
FROM P_HAS_LOC
GROUP BY EPC_ploc
HAVING COUNT(EPC_ploc) =
(
SELECT MAX(mycount)
FROM
(
SELECT EPC_ploc, COUNT(EPC_ploc) mycount
FROM P_HAS_LOC
GROUP BY EPC_ploc
) AS mycountt
)
和
SELECT Category_ID_h, COUNT(Category_ID_h)
FROM P_HAS_CA GROUP BY Category_ID_h
HAVING COUNT(Category_ID_h) =
(
SELECT MAX(mycount)
FROM
(
SELECT Category_ID_h, COUNT(Category_ID_h) mycount
FROM P_HAS_CA
GROUP BY Category_ID_h) AS mycountt
)
)
最佳答案
我认为您需要重新处理查询中的子查询,这会导致所有问题。你应该能够摆脱这个:
SELECT EPC_ploc, COUNT(EPC_ploc)
FROM P_HAS_LOC
GROUP BY EPC_ploc
HAVING COUNT(EPC_ploc) =
(
SELECT COUNT(EPC_ploc)
FROM P_HAS_LOC
GROUP BY EPC_ploc
ORDER BY COUNT(EPC_ploc) DESC
LIMIT 1;
)
SELECT Category_ID_h, COUNT(Category_ID_h)
FROM P_HAS_CA
GROUP BY Category_ID_h
HAVING COUNT(Category_ID_h) =
(
SELECT COUNT(Category_ID_h)
FROM P_HAS_CA
GROUP BY Category_ID_h
ORDER BY COUNT(Category_ID_h)
LIMIT 1;
)
正如@pala_ 提到的,您还可以使用 JOIN
重新处理您的查询,但我上面给出的是使用子查询获取所有组的最大值的一种正确方法。
关于MySQL:FROM 子句中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521187/