-2
SELECT COUNT(*) as Count, IF(sch.HomeTeamID = 34,true,false) AS Hawaii
FROM schedule sch 
JOIN schools s ON s.ID = 83 
WHERE (sch.HomeTeamID = 83 OR sch.AwayTeamID = 83)
AND sch.SeasonID = 4

我正在尝试使用 count() 来简化我的结果,但还包括一个字段,该字段表示任何结果的特定列是否包含某个值。这可能吗?我基本上想要一个包含我需要的所有信息的行响应。

4

2 回答 2

2

如果您要计算主队 34 次,请执行以下操作:

SELECT 
    COUNT(*) as Count, 
    sum(sch.HomeTeamID = 34) AS Hawaii_home_count
...

顺便说一句,条件的简洁求和仅在mysql中有效,因为在mysql中true为1,false为0,所以sum(condition)计算它为true的次数(其他数据库需要使用case语句)

于 2012-12-11T23:01:38.533 回答
0

使用have子句怎么样?

SELECT COUNT(*) as Count
FROM schedule sch 
JOIN schools s ON s.ID = 83 
WHERE (sch.HomeTeamID = 83 OR sch.AwayTeamID = 83)
AND sch.SeasonID = 4
Having sch.HomeTeamID = 34
于 2012-12-11T23:04:17.450 回答