Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MYSQL의 중복 제품 ID에서 해당 레코드의 평균(제품 가격) 찾기

<시간/>

이를 위해 평균에는 AVG()를 사용하고 중복 열(제품 ID)의 레코드를 그룹화하려면 GROUP BY를 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable1490
   -> (
   -> ProductId varchar(20),
   -> ProductPrice int
   -> );
Query OK, 0 rows affected (0.43 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1490 values('PRODUCT_100',700);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1490 values('PRODUCT_200',500);
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1490 values('PRODUCT_200',1000);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1490 values('PRODUCT_100',1300);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1490 values('PRODUCT_200',300);
Query OK, 1 row affected (0.14 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select * from DemoTable1490;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+--------------+
| ProductId   | ProductPrice |
+-------------+--------------+
| PRODUCT_100 |          700 |
| PRODUCT_200 |          500 |
| PRODUCT_200 |         1000 |
| PRODUCT_100 |         1300 |
| PRODUCT_200 |          300 |
+-------------+--------------+
5 rows in set (0.00 sec)

평균을 구하는 쿼리는 다음과 같습니다. -

mysql> select ProductId,avg(ProductPrice) from DemoTable1490
   -> group by ProductId;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+-------------------+
| ProductId   | avg(ProductPrice) |
+-------------+-------------------+
| PRODUCT_100 |         1000.0000 |
| PRODUCT_200 |          600.0000 |
+-------------+-------------------+
2 rows in set (0.03 sec)