কম্পিউটার টিউটোরিয়াল

MySQL에서 CASE WHEN으로 동일 컬럼의 두 가지 다른 합계 구하기

CASE WHEN을 SUM() 안에 넣으면 조건부 합계를 한 쿼리에 여러 개 구할 수 있습니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable1794 (
    -> Amount INT
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1794 VALUES(100);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1794 VALUES(80);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1794 VALUES(320);
Query OK, 1 row affected (0.00 sec)

데이터 조회

mysql> SELECT * FROM DemoTable1794;
+--------+
| Amount |
+--------+
|    100 |
|     80 |
|    320 |
+--------+
3 rows in set (0.00 sec)

전체 합계와 150 미만만 합계 동시 조회

mysql> SELECT SUM(Amount),
    -> SUM(CASE WHEN Amount < 150 THEN Amount ELSE 0 END) AS SecondAmount
    -> FROM DemoTable1794;
+-------------+--------------+
| SUM(Amount) | SecondAmount |
+-------------+--------------+
|         500 |          180 |
+-------------+--------------+
1 row in set (0.00 sec)

해설: 전체 합계: 100+80+320=500. 150 미만만 합계: 100+80=180 (320 제외). CASE WHEN 조건 THEN 값 ELSE 0 END 패턴으로 조건부 합계 구현. 여러 조건이면 SUM(CASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 0 END)로 확장 가능.

  1. MySQL-এ UNION এবং ORDER BY ব্যবহার করে দুটি টেবিলের কলাম একসাথে সর্ট করা

  2. MySQL-এ একই কলাম থেকে ভিন্ন মান নির্বাচন করে আলাদা কলামে প্রদর্শন করা

  3. MySQL-এ আলাদা রেকর্ড থেকে গণনা একই সারিতে প্রদর্শন করা

  4. MySQL-এ CASE WHEN এবং GROUP_CONCAT ব্যবহার করে শর্তসাপেক্ষে কলাম মান কনক্যাটেনেট করা