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

결과 집합의 각 값의 합계를 표시하는 열에서 3개의 다른 값을 합산하는 MySQL 쿼리는 무엇입니까?

<시간/>

이를 위해 CASE 문을 사용할 수 있습니다. 먼저 테이블을 생성하겠습니다 -

mysql> 테이블 생성 DemoTable( ProductName varchar(100), ProductRating ENUM('1','2','3'));Query OK, 영향을 받는 행 0개(0.50초)

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

mysql> insert into DemoTable values('Product-1',3);Query OK, 1개의 row가 영향을 받음(0.12초)mysql> insert into DemoTable values('Product-2',1);Query OK, 1 row 영향을 받은(0.08초)mysql> DemoTable 값에 삽입('제품-3',2);쿼리 확인, 영향을 받는 1행(0.12초)mysql> 데모 테이블 값에 삽입('제품-1',2), 쿼리 확인, 영향을 받는 행 1개(0.10초)mysql> DemoTable 값에 삽입('Product-3',3);쿼리 확인, 영향을 받는 행 1개(0.13초)mysql> DemoTable 값에 삽입('제품-2',2);쿼리 OK, 1행 영향(0.13초)mysql> DemoTable values('Product-3',3)에 삽입 

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

mysql> DemoTable에서 *선택;

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

+-------------+---------------+| 제품명 | 상품평 |+-------------+---------------+| 제품-1 | 3 || 제품-2 | 1 || 제품-3 | 2 || 제품-1 | 2 || 제품-3 | 3 || 제품-2 | 2 || 제품-3 | 3 |+-------------+--------------+7행 세트(0.00초)

다음은 결과 집합의 각 값의 합계를 표시하는 열에서 3개의 다른 값을 합산하는 쿼리입니다. 우리는 제품 평가를 기반으로 추가하고 있습니다 -

mysql> Select ProductName, sum( case when ProductRating=3 then 1 else 0 end ) as Product_3_Rating, sum( case when ProductRating=2 then 1 else 0 end ) as Product_2_Rating, sum( case when ProductRating=1 then 1 else) 0 끝 ) Product_1_ ProductName별 DemoTable 그룹의 평가

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

+-------------+------------------+------------- -----+------------------+| 제품명 | 상품_3_평가 | 상품_2_평가 | 상품_1_평점 |+-------------+------------------+---------------- --+--------+| 제품-1 | 1 | 1 | 0 || 제품-2 | 0 | 1 | 1 || 제품-3 | 2 | 1 | 0 |+-------------+------------------+-------------- -+-----------------+3행 세트(0.00초)