1

チュートリアルなどに出席するかどうかに関するデータを含む学生のテーブルがあります。以下に抜粋があります。

|   id |   studentid | name |  present | 
|   1  |   111       | John |       1  | 
|   2  |   222       | Kate |       0  | 
|   3  |   333       | Matt |       1  | 
|   4  |   111       | John |       0  | 
|   5  |   111       | John |       1  | 

例えば、studentid=111 で present = 1 の場合と、studentid=111 で present = 0 の場合を数えることはできます。しかし、これら 2 つのことを解決することはできません。

私。それぞれに対して個別のカウントを行うのではなく、1 つのカウント クエリのみを実行できますか? 現在、私の2つの別々のクエリで、たとえば取得しています

学生ID=111および現在= 1

| name |  present | 
| John |       12 | 

学生ID=111および現在= 0

| name |  absent | 
| John |       4 | 

しかし、私は理想的には

| name |  present |  absent | 
| John |       12 |       4 | 

ii.授業の出席率が 75% 未満の生徒に会いたいです。avg 関数について読んだことがありますが、これを実装する方法がわかりません。

4

2 に答える 2

2

クラスの 75% 未満に出席した学生を一覧表示するには、次のようにします。

SELECT
  studentid,
  name, 
  SUM(present) AS present,
  SUM(present = 0) AS absent
FROM your_table
GROUP BY studentid, name
HAVING present < .75 * (present+absent)
于 2012-12-23T10:12:52.930 に答える
1

以下のようにすることができます:

SELECT
  studentid,
  name, 
  SUM(present = 1) AS present,
  SUM(present = 0) AS absent
FROM your_table
GROUP BY studentid, name
于 2012-12-23T09:37:49.647 に答える