MySQLで1年間の在籍学生と不在学生の両方の数を取得するにはどうすればよいですか?
このために、集計関数SUM()とともにIF()を使用できます。まずテーブルを作成しましょう-
mysql> create table DemoTable1617 -> ( -> Attendance varchar(20), -> CurrentYear int -> ); Query OK, 0 rows affected (0.48 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable1617 values('Present',2019); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable1617 values('Absent',2019); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable1617 values('Absent',2017); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1617 values('Present',2019); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable1617 values('Present',2018); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable1617 values('Present',2019); Query OK, 1 row affected (0.14 sec)>
mysql> select * from DemoTable1617;
これにより、次の出力が生成されます-
+------------+-------------+ | Attendance | CurrentYear | +------------+-------------+ | Present | 2019 | | Absent | 2019 | | Absent | 2017 | | Present | 2019 | | Present | 2018 | | Present | 2019 | +------------+-------------+ 6 rows in set (0.00 sec)
以下は、1年間の在校生と欠席生の両方の数を取得するためのクエリです
mysql> select sum(if(Attendance='Present',1,0)) as Present , -> sum(if(Attendance='Absent',1,0)) as Absent -> from DemoTable1617 -> where CurrentYear LIKE '2019%';
これにより、次の出力が生成されます-
+---------+--------+ | Present | Absent | +---------+--------+ | 3 | 1 | +---------+--------+ 1 row in set (0.00 sec)
-
すべてのMySQLトリガーと現在のデータベースのみのトリガーを取得する方法
すべてのMySQLトリガーを取得するには、次の構文を使用します- select trigger_schema,trigger_name from information_schema.triggers; 上記の構文を実装して、スキーマとともにすべてのトリガー名を取得しましょう- mysql> select trigger_schema,trigger_name from information_schema.triggers; これにより、次の出力が生成されます- +----------------+---------------------------------+ | TRIGG
-
MySQLで日付レコードと現在の日付の違いを取得するにはどうすればよいですか?
現在の日付が2019-09-06であるとしましょう。この例では、最初にテーブルを作成します- mysql> create table DemoTable ( AdmissionDate date ); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('2019-01-08'); Query OK, 1 row affected (0.10 sec) mysql> ins