在单个MySQL查询中计算不同的不同项目?
要计数项目,请使用COUNT()和DISTINCT。在这里,DISTINCT用于返回不同的值。现在让我们看一个示例并创建一个表-
create table DemoTable ( CustomerId int, CustomerName varchar(20), ProductName varchar(40) );
使用插入命令在表中插入一些记录-
insert into DemoTable values(101,'Chris','Product-1'); insert into DemoTable values(102,'David','Product-2'); insert into DemoTable values(101,'Chris','Product-1'); insert into DemoTable values(101,'Chris','Product-2'); insert into DemoTable values(101,'Chris','Product-1');
使用select语句显示表中的所有记录-
select *from DemoTable;
这将产生以下输出-
+------------+--------------+-------------+ | CustomerId | CustomerName | ProductName | +------------+--------------+-------------+ | 101 | Chris | Product-1 | | 102 | David | Product-2 | | 101 | Chris | Product-1 | | 101 | Chris | Product-2 | | 101 | Chris | Product-1 | +------------+--------------+-------------+ 5 rows in set (0.00 sec)
以下是在单个查询中计算不同项目的查询-
select count(distinct ProductName) from DemoTable where CustomerId=101;
这将产生以下输出-
+-----------------------------+ | count(distinct ProductName) | +-----------------------------+ | 2 | +-----------------------------+ 1 row in set (0.00 sec)