0

我试图在这里接受“Galt Barber on August 26 2006”关于不同优化的建议:http: //dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html

我的查询看起来像:

 SELECT COUNT( `pUserDirectLabor`.`pDate` ) as `daysWorked` 
 FROM   ( SELECT  DISTINCT `user_direct_labor`.`date`  as `pDate`  
       FROM user_direct_labor 
       GROUP BY user_direct_labor.`date`)  
 AS pUserDirectLabor,  user_direct_labor   

此处仅查询 1 个表。该表包含日期时间类型user_direct_labor的列。date该表中有 12 行。2013-06-28 00:00:00 格式中有 6 个唯一日期。

如果我自己只运行子查询,我会从数据库中返回 6 行,所有行都具有预期的唯一日期。

当我添加 count() 时,结果变为 54。我不确定 54 来自哪里。我对子查询相当陌生。

如果我将其更改为 COUNT(1),它仍然返回 54。我不确定为什么要使用 COUNT(1),但这就是这个人在说的。 如何在 MySQL 中用子查询表示 count(distinct)?

任何人都可以给我任何指示吗?

4

1 回答 1

0

你可以像这样简单地做到这一点:

   SELECT  `date`  as `pDate`  , COUNT(*) as `daysWorked`
   FROM user_direct_labor 
   GROUP BY `date`  
于 2013-06-28T19:08:13.353 回答