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

MySQL에서 SUM(조건)으로 특정 값 카운트 한 번에 여러 개 구하기

SUM(조건식)을 사용하면 조건을 만족하는 행의 수를 구할 수 있습니다. 조건식은 참(1)/거짓(0)으로 평가되므로 합산이 곧 개수가 됩니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable1790 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20),
    -> Score INT
    -> );
Query OK, 0 rows affected (0.94 sec)
mysql> INSERT INTO DemoTable1790(Name,Score) VALUES('Chris',45);
Query OK, 1 row affected (0.38 sec)
mysql> INSERT INTO DemoTable1790(Name,Score) VALUES('David',55);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable1790(Name,Score) VALUES('David',98);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable1790(Name,Score) VALUES('Chris',91);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable1790(Name,Score) VALUES('Mike',99);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1790(Name,Score) VALUES('Carol',55);
Query OK, 1 row affected (0.35 sec)

데이터 조회

mysql> SELECT * FROM DemoTable1790;
+----+-------+-------+
| Id | Name  | Score |
+----+-------+-------+
|  1 | Chris |    45 |
|  2 | David |    55 |
|  3 | David |    98 |
|  4 | Chris |    91 |
|  5 | Mike  |    99 |
|  6 | Carol |    55 |
+----+-------+-------+
6 rows in set (0.00 sec)

한 쿼리로 두 가지 카운트 동시 조회

mysql> SELECT SUM(Name='Chris'), SUM(Score=55) FROM DemoTable1790;
+-------------------+---------------+
| SUM(Name='Chris') | SUM(Score=55) |
+-------------------+---------------+
|                 2 |             2 |
+-------------------+---------------+
1 row in set (0.00 sec)

원리: Name='Chris'는 참이면 1, 거짓이면 0. SUM()으로 더하면 개수가 됩니다. COUNT(CASE WHEN Name='Chris' THEN 1 END)와 동일하지만 더 간결합니다. 여러 조건 카운트 시 유용.

  1. একক MySQL কোয়ারিতে একাধিক সারি পাওয়ার পদ্ধতি

  2. একটি MySQL কোয়েরি দিয়ে বিভিন্ন কলামের মান থেকে একাধিক শব্দ অনুসন্ধান

  3. MySQL-এ IFNULL() ব্যবহার করে NULL মানকে নির্দিষ্ট ভ্যালু ('Robert') দিয়ে রিপ্লেস করা

  4. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?