是以下中的SQL可以接受的:是否可以在集合函數中使用查詢?
SELECT P.pid P.cnt
FROM Professors P
WHERE P.cnt <= Max(SELECT P2.cnt FROM Professors P2)
我問,因爲這是由教授提供的一個答案的一個問題,在中期。我實際上已經在SQL中嘗試過了,但是我只是想確認一下。
是以下中的SQL可以接受的:是否可以在集合函數中使用查詢?
SELECT P.pid P.cnt
FROM Professors P
WHERE P.cnt <= Max(SELECT P2.cnt FROM Professors P2)
我問,因爲這是由教授提供的一個答案的一個問題,在中期。我實際上已經在SQL中嘗試過了,但是我只是想確認一下。
在語法上,我會寫這樣的:從邏輯上講
SELECT P.pid, P.cnt
FROM Professors P
WHERE P.cnt <= (SELECT MAX(P2.cnt) FROM Professors P2)
,它不因爲條件永遠是真的,所以看起來並沒有多大的成就。
是的,在聚合函數中允許查詢。當你嘗試它時,你得到的錯誤是什麼?對我來說這件事是P.pid
在SELECT P.pid P.cnt
之後缺失的逗號。
我可能會錯過一些明顯的東西,但對我來說,這看起來像是一些額外的SQL,它什麼都不做。我將其解讀爲「爲所有教授以外的教授提供的信息,這些教授的人數少於或等於最重要的教授」 - I.E.,所有教授。爲什麼不完全消除WHERE
?
你說得很對,這只是我發佈的一個虛擬查詢來獲得關於有問題位的答案。 – sbenderli
這不行。我不認爲這是標準的ANSI SQL
你可以嘗試把它改寫這樣
SELECT P.pid P.cnt
FROM Professors P
WHERE P.cnt <= (SELECT max(P2.cnt) FROM Professors P2)
非常感謝! – sbenderli
我沒有寫完整的查詢,我只是在虛擬查詢中使用了有問題的部分:) – sbenderli