MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

エラー1111(HY000)を解決します:MySQLでのグループ関数の使用が無効ですか? where句で集計関数を正しく使用するにはどうすればよいですか?


MySQLのwhere句で集計関数を正しく使用するための構文は次のとおりです-

select *from yourTableName
where yourColumnName > (select AVG(yourColumnName) from yourTableName);

上記の概念を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table EmployeeInformation
   -> (
   -> EmployeeId int,
   -> EmployeeName varchar(20),
   -> EmployeeSalary int,
   -> EmployeeDateOfBirth datetime
   -> );
Query OK, 0 rows affected (1.08 sec)
>

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-

mysql> insert into EmployeeInformation values(101,'John',5510,'1995-01-21');
Query OK, 1 row affected (0.13 sec)
mysql> insert into EmployeeInformation values(102,'Carol',5600,'1992-03-25');
Query OK, 1 row affected (0.56 sec)
mysql> insert into EmployeeInformation values(103,'Mike',5680,'1991-12-25');
Query OK, 1 row affected (0.14 sec)
mysql> insert into EmployeeInformation values(104,'David',6000,'1991-12-25');
Query OK, 1 row affected (0.23 sec)
mysql> insert into EmployeeInformation values(105,'Bob',7500,'1993-11-26');
Query OK, 1 row affected (0.16 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from EmployeeInformation;

以下は出力です-

+------------+--------------+----------------+---------------------+
| EmployeeId | EmployeeName | EmployeeSalary | EmployeeDateOfBirth |
+------------+--------------+----------------+---------------------+
|        101 | John         |           5510 | 1995-01-21 00:00:00 |
|        102 | Carol        |           5600 | 1992-03-25 00:00:00 |
|        103 | Mike         |           5680 | 1991-12-25 00:00:00 |
|        104 | David        |           6000 | 1991-12-25 00:00:00 |
|        105 | Bob          |           7500 | 1993-11-26 00:00:00 |
+------------+--------------+----------------+---------------------+
5 rows in set (0.00 sec)

where句でaggregateを使用する正しい方法は次のとおりです。クエリは次のとおりです-

mysql> select *from EmployeeInformation
   -> where EmployeeSalary > (select AVG(EmployeeSalary) from EmployeeInformation);

以下は出力です-

+------------+--------------+----------------+---------------------+
| EmployeeId | EmployeeName | EmployeeSalary | EmployeeDateOfBirth |
+------------+--------------+----------------+---------------------+
|        105 | Bob          |           7500 | 1993-11-26 00:00:00 |
+------------+--------------+----------------+---------------------+
1 row in set (0.04 sec)

  1. MySQLでWITHROLLUPを正しく使用するにはどうすればよいですか?

    WITH ROLLUP-を使用するための構文は、次のとおりです。 select yourColumnName1,sum(yourColumnName2) from yourTableName  group by yourColumnName1 with rollup; まずテーブルを作成しましょう- mysql> create table DemoTable1622     -> (     -> EmployeeCountryName varchar(20),     -> EmployeeSal

  2. WHERE句でMySQLVIEWを使用するにはどうすればよいですか?

    WHERE句を使用したMySQLVIEWの場合、構文は次のとおりです- select * from yourViewName where yourColumnName='yourValue'; まず、-を作成しましょう mysql> create table DemoTable1432    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentName varchar(20),   &n