SQL中是否可接受以下内容:
SELECT P.pid P.cnt
FROM Professors P
WHERE P.cnt <= Max(SELECT P2.cnt FROM Professors P2)
我在问,因为这是教授在期中考试中提出的问题。我实际上已经在SQL中尝试过它并且不允许,但我只是想确定。
答案 0 :(得分:3)
从语法上讲,我会这样写:
SELECT P.pid, P.cnt
FROM Professors P
WHERE P.cnt <= (SELECT MAX(P2.cnt) FROM Professors P2)
从逻辑上讲,它似乎并没有真正实现,因为条件总是如此。
答案 1 :(得分:2)
这不起作用。我不认为它是标准的ANSI SQL
你可以尝试像这样重写它
SELECT P.pid P.cnt
FROM Professors P
WHERE P.cnt <= (SELECT max(P2.cnt) FROM Professors P2)
答案 2 :(得分:1)
是的,在聚合函数中允许查询。你尝试时得到的错误是什么?在P.pid
SELECT P.pid P.cnt
WHERE
之后,对我来说很明显的是逗号。
我可能会遗漏一些显而易见的东西,但对我来说,这似乎是一些额外的SQL,什么都不做。我把它读作“为所有教授选择有关教授的信息,这些教授的数量都不及教授的数量最多” - 所有教授都是I.E.为什么不完全消除{{1}}?