【发布时间】:2014-08-30 20:58:10
【问题描述】:
我有以下问题。 我只需要在我的组中选择最旧的行(按 DATE 列)。保持我的条件(在哪里和分组)。
SELECT
table.*
from table
where views > $views AND sales>23
group by
name
说得更清楚一点,就像传递第一个表一样
+--------------------+-----------+--------------------+-----------+
| 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 |
+--------------------+-----------+--------------------+-----------+
marko.c
我已经尝试过像这样进行子选择
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
但它不起作用。有人吗?
【问题讨论】:
-
它告诉你什么?
-
您可以使用 ORDER BY DATE DESC LIMIT 1;这会给你结果只有 1 行 DATE IN 降序。让我知道它是否适合您。
-
你想要的输出是什么?
-
您有一个 GROUP BY 子句并且没有聚合函数。只是说'
标签: mysql select group-by where