2

次のテーブルがあります http://sqlfiddle.com/#!3/7f078/1

さて、私がやりたいのは GROUP BYschoolidで、各学校の子供の数を数えます。かんたんだよ。しかし、子供が 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 に答える