在 MySQL 的单个查询中计算两个不同的列?

您可以使用 CASE 语句在单个查询中计算两个不同的列。为了理解这个概念,让我们首先创建一个表。创建表的查询如下。

mysql> create table CountDifferentDemo

   - > (

   - > ProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,

   - > ProductName varchar(20),

   - > ProductColor varchar(20),

   - > ProductDescription varchar(20)

   - > );

使用插入命令在表中插入一些记录。

查询如下

mysql> insert into CountDifferentDemo(ProductName,ProductColor,ProductDescription) values('Product-1','Red','Used');

mysql> insert into CountDifferentDemo(ProductName,ProductColor,ProductDescription) values('Product-1','Blue','Used');

mysql> insert into CountDifferentDemo(ProductName,ProductColor,ProductDescription) values('Product-2','Green','New');

mysql> insert into CountDifferentDemo(ProductName,ProductColor,ProductDescription) values('Product-2','Blue','New');

mysql> insert into CountDifferentDemo(ProductName,ProductColor,ProductDescription) values('Product-3','Green','New');

mysql> insert into CountDifferentDemo(ProductName,ProductColor,ProductDescription) values('Product-4','Blue','Used');

使用 select 语句显示表中的所有记录。

查询如下

mysql> select *from CountDifferentDemo;

以下是输出

+-----------+-------------+--------------+--------------------+

| ProductId | ProductName | ProductColor | ProductDescription |

+-----------+-------------+--------------+--------------------+

|         1 | Product-1   | Red          | Used               |

|         2 | Product-1   | Blue         | Used               |

|         3 | Product-2   | Green        | New                |

|         4 | Product-2   | Blue         | New                |

|         5 | Product-3   | Green        | New                |

|         6 | Product-4   | Blue         | Used               |

+-----------+-------------+--------------+--------------------+

6 rows in set (0.01 sec)

这是在单个查询中计算两个不同列的查询,即我们正在计算特定颜色“红色”和描述“新”的出现

mysql> select ProductName,

   - > SUM(CASE WHEN ProductColor = 'Red' THEN 1 ELSE 0 END) AS Color,

   - > SUM(CASE WHEN ProductDescription = 'New' THEN 1 ELSE 0 END) AS Desciption

   - > from CountDifferentDemo

   - > group by ProductName;

以下是输出

+-------------+-------+------------+

| ProductName | Color | Desciption |

+-------------+-------+------------+

| Product-1   |     1 |          0 |

| Product-2   |     0 |          2 |

| Product-3   |     0 |          1 |

| Product-4   |     0 |          0 |

+-------------+-------+------------+

4 rows in set (0.12 sec)

以上是 在 MySQL 的单个查询中计算两个不同的列? 的全部内容, 来源链接: utcz.com/z/311416.html

回到顶部