mysql GROUPBY语句中的条件在哪里?

mysql GROUPBY语句中的条件在哪里?,mysql,select,group-by,where,Mysql,Select,Group By,Where,我有以下疑问。 我只需要在我的GROUPBY中选择最早的rows by DATE列。将我的条件保留在何处并分组 SELECT table.* from table where views > $views AND sales>23 group by name 更清楚一点,这就像把第一张桌子递给frm一样 +--------------------+-----------+--------------------+-----------+ | name

我有以下疑问。 我只需要在我的GROUPBY中选择最早的rows by DATE列。将我的条件保留在何处并分组

SELECT 
table.*
from table
where views > $views AND sales>23
group by 
name
更清楚一点,这就像把第一张桌子递给frm一样

+--------------------+-----------+--------------------+-----------+
| name               | views     | DATE               |   sales   |
+--------------------+-----------+--------------------+-----------+
| sue1               |       494 | 2014-06-23 12:08:29|   26      |
| sue2               |       494 | 2014-06-25 12:08:29|   34      |
| sue3               |       494 | 2014-06-27 12:08:29|   45      |
| sue4               |       520 | 2014-06-26 12:08:29|   56      |
| sue5               |       570 | 2014-06-24 12:08:29|   20      |
| sue5               |       570 | 2014-06-24 12:08:29|   28      |
+--------------------+-----------+--------------------+-----------+
到第二个

+--------------------+-----------+--------------------+-----------+
|  name              | views     | DATE               |  sales    |
+--------------------+-----------+--------------------+-----------+
| sue3               |       494 | 2014-06-27 12:08:29|    45     |
| sue4               |       520 | 2014-06-26 12:08:29|    56     |
| sue5               |       570 | 2014-06-24 12:08:29|    28     |
+--------------------+-----------+--------------------+-----------+
马尔科

我试过这样做一个子选择

SELECT 
table.*
from table
where views > $views AND sales>23
and date in (select max(date) from table where views > $views AND sales>23)
group by 
name

但它不起作用。有人吗?

作为第一关,我真的不知道你想要什么。我想你的要求是在最早的日期之前获得所有独特的视图。。。但是在任何情况下,如果你想要每件东西的最早日期,那么在订购后就可以进行分组

SELECT * FROM(
    SELECT 
    table.*
    FROM table
    WHERE views > $views AND sales>23
    ORDER BY date
) AS t
GROUP BY name;
当你在某个日期进行汇总时,请回想一下

MAX(date) will give you the NEWEST date because it is the greatest date. 
MIN(date) will give you the OLDEST date because it is the oldest / smallest date.
所以,如果你想做你的其他张贴查询,你可以做

SELECT 
table.*
from table
where views > $views AND sales>23
and date in (select MIN(date) from table where views > $views AND sales>23)
group by 
name

然后看看MINdate是否会这样做

你在子查询中选择了最长的总日期,但你真正想要的是每个名字最早的最小日期

SELECT 
    t1.*
from table t1
join (
    select 
        t2.name,
        min(t2.date) min_date
    from table t2
    where t2.views > $views AND t2.sales > 23
    group by t2.name
) t2 on t2.name = t1.name and t2.min_date = t1.date
where t1.views > $views AND t1.sales > 23

它告诉你什么?你可以使用订单日期描述限制1;这将只为您提供一行降序日期的结果。让我知道它是否适合你。你想要的输出是什么?你有一个GROUPBY子句,没有聚合函数。只是说