問題:顯示 2010 年 5 月期間一直在同一國家舉辦的比賽類別。我的查詢有什么問題?
select Category
from competition
where Date >= '2010-01-01' and Date <= '2010-12-31'
group by Country, Category
having count(*) = (select count(*)
from competition
where Date >= '2010-01-01' and Date <= '2010-12-31'
group by Category)
uj5u.com熱心網友回復:
您不需要兩個查詢。只需使用一個查詢來檢查國家的數量是否為 1。
select category, count(DISTINCT country) AS country_count
from competition
where Date BETWEEN '2010-05-01' and '2010-05-31'
group by Category
HAVING country_count = 1
我還將日期更正為 5 月,而不是 2010 年全年。
uj5u.com熱心網友回復:
洗掉GROUP BY如果你讓你回傳超過 1 行(在你的HAVING CLAUSE。如果你給我一個示例資料集和你想要的我可以幫助你更多
uj5u.com熱心網友回復:
我會嘗試這樣的事情開始:
SELECT COUNTRY
, CATEGORY
, COUNT(COUNTRY)
FROM COMPETITION
WHERE DATE BETWEEN '2010-04-30' AND '2010-06-01'
ORDER BY CATEGORY DESC, COUNT(COUNTRY) DESC
;
您的原始查詢的日期限制僅適用于 2010 年,但您指定只需要 2010 年 5 月。如果日期列是日期或日期時間,您需要將字串轉換為適當的資料型別。
你的問題是“總是由一個國家主辦”——你知道比賽只會在那個特定月份由一個國家主辦嗎?如果你這樣做了,你就完成了。但是,如果您不這樣做,那么您需要澄清您的標準到底是什么
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/404827.html
標籤:
上一篇:沒有正確計算周數
