我试图在2006年8月26日的“Galt Barber”中提出有关明显优化的建议: 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
列为日期时间类型。该表有12行。 2013-06-28 00:00:00格式有6个独特日期。
如果我自己只运行子查询,我会从数据库中返回6行,并且具有预期的唯一日期。
当我添加count()时,结果变为54.我不确定54来自何处。我对子查询相当新手。
如果我将其更改为COUNT(1),它仍然会返回54.我不知道为什么要使用COUNT(1),但这就是这个人所说的。 How to express count(distinct) with subquery in MySQL?
任何人都可以给我任何指示吗?
答案 0 :(得分:0)
SELECT `date` as `pDate` , COUNT(*) as `daysWorked`
FROM user_direct_labor
GROUP BY `date`