
我試圖用這個查詢來解決這個 SQL 練習,但我不明白它是否可以作業,因為這部分:
HAVING COUNT(*) = (
SELECT MAX(TotalP)
FROM (SELECT AuthorCode, Edition, Conference, Count(*) TotalP
FROM AUTHOR_PRESENTS_ARTICLE APA1
WHERE APA1.Edition = APA.Edition AND APA1.Conference = APA.Conference
GROUP BY AuthorCode, Edition, Conference))
SELECT不是每次都回傳相同的值(最大值),所以我不能為每個版本的會議都有嗎?我在下面附上我的完整代碼:
SELECT EC.EditionName,
APA.AuthorCode
FROM EDITIONS_OF_THE_CONFERENCE EC,
AUTHOR_PRESENTS_ARTICLE APA
WHERE EC.Conference = APA.Conference
AND EC.Conference IN(
SELECT Conference
FROM EDITIONS_OF_CONFERENCE
GROUP BY Conference --L'EDITION SARA' DIVERSA ESSENDO ENTRAMBE PK
HAVING COUNT(*) >= 10
)
GROUP BY APA.Edition,
APA.EditionName,
APA.Conference,
APA.AuthorCode
HAVING COUNT(*) = (
SELECT MAX(TotalP)
FROM (
SELECT AuthorCode,
Edition,
Conference,
Count(*) TotalP
FROM AUTHOR_PRESENTS_ARTICLE APA1
WHERE APA1.Edition = APA.Edition
AND APA1.Conference = APA.Conference
GROUP BY AuthorCode, Edition, Conference
)
)
uj5u.com熱心網友回復:
SELECT 不是每次都回傳相同的值(最大值)嗎?
不,每次將子查詢與外部查詢相關聯時,它不會回傳相同的最大值。
如果您使用過:
SELECT MAX(TotalP)
FROM (
SELECT AuthorCode,
Edition,
Conference,
Count(*) TotalP
FROM AUTHOR_PRESENTS_ARTICLE APA1
GROUP BY AuthorCode, Edition, Conference
)
然后它將回傳所有文章的最大計數,但您沒有并添加了一個WHERE過濾器:
SELECT MAX(TotalP)
FROM (
SELECT AuthorCode,
Edition,
Conference,
Count(*) TotalP
FROM AUTHOR_PRESENTS_ARTICLE APA1
WHERE APA1.Edition = APA.Edition
AND APA1.Conference = APA.Conference
GROUP BY AuthorCode, Edition, Conference
)
這將其限制為從外部查詢中找到最大值,conference因此edition當您有不同conference或不edition同時,您將找到該特定配對的最大值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489460.html
