2

我有下表 http://sqlfiddle.com/#!3/7f078/1

好的,我想做的是 GROUP BY schoolid,然后计算每所学校的孩子人数。这很简单。但我想移除一所拥有不到 10 个孩子的学校schoolinclude = 1。所以基本上,对于一所特定的学校,查看所有拥有的孩子,schoolinclude = 1然后计算这些孩子。如果学校的孩子少于 10 个,我希望这所学校被移除。然后我想在这所学校被移除的情况下返回原来的桌子。

解决这个问题的最好方法是什么?

4

3 回答 3

1

这听起来可能是一个学校问题,所以我不会给出完整的答案,但是:

查看 HAVING 子句http://www.w3schools.com/sql/sql_having.asp

于 2012-11-14T16:31:24.017 回答
1

您需要实现与此类似的HAVING子句count(students)

select *
from table_name
where schoolmident not in (SELECT schoolmident
                            FROM table_name
                            where schoolinclude = 1
                            group by schoolmident
                            having count(studentuid) < 10);

请参阅带有演示的 SQL Fiddle

于 2012-11-14T16:45:20.017 回答
0
select *
from (
   select schoolmident
   from table_name
   where schoolinclude = 1
   group by schoolmident
   having count(studentuid) > 9) as a 
      join table_name as b
      on a.schoolmident = b.schoolmident
于 2012-11-14T17:11:55.353 回答