繁体   English   中英

MySQL独特查询和子查询优化

[英]MySQL Distinct Query with Subqueries optimization

我正在尝试采用“关于2006年8月26日的理发师”的建议来进行独特的优化: 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   

此处仅查询一张表。 该表是user_direct_labor ,列date为datetime类型。 该表中有12行。 2013-06-28 00:00:00格式有6个唯一的日期。

如果仅运行子查询本身,则从数据库返回6行,且所有行均具有预期的唯一日期。

当我添加count()时,结果变为54。我不确定54来自何处。 我对子查询还是个新手。

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

谁能给我任何指示?

您可以像这样简单:

   SELECT  `date`  as `pDate`  , COUNT(*) as `daysWorked`
   FROM user_direct_labor 
   GROUP BY `date`  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM