mysql GROUPBY语句中的条件在哪里?
我有以下疑问。 我只需要在我的GROUPBY中选择最早的rows by DATE列。将我的条件保留在何处并分组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
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子句,没有聚合函数。只是说