为另一列中的每个值选择不同的列然后分组依据

时间:2013-08-09 17:36:13

标签: mysql sql select group-by distinct

我是mySQL的新手,在过去的两天里我很难尝试让它工作。我不知道标题是否与我想要解决的问题有关,但如果不是,请纠正我。

这是交易:

我有4列... id,number,package_id和date。

id - 每次插入新行时都会增加 数字 - 只需2位数字 package_id - 包的ID 日期 - 插入日期和时间行

以下是示例表的样子:(我从日期省略了时间

id         number        package_id        date
---        ------        ----------        ----
1          12            20                08-01-2013
2          12            21                08-01-2013
3          12            20                08-01-2013
4          45            20                08-02-2013
5          45            22                08-02-2013
6          45            22                08-03-2013
7          12            20                08-03-2013
8          70            25                08-03-2013
9          70            26                08-03-2013
10         70            25                08-03-2013

我不仅尝试按日期选择数字和分组。我也在尝试确保它为package_id列中的每个唯一值执行此操作。

为了更好地解释,这就是我希望输出在SELECT *:

时的情况
id         number        package_id        date
---        ------        ----------        ----
1          12            20                08-01-2013
2          12            21                08-01-2013
4          45            20                08-02-2013
5          45            22                08-02-2013
6          45            22                08-03-2013
7          12            20                08-03-2013
8          70            25                08-03-2013
9          70            26                08-03-2013

正如您所看到的,由于同一天内的数字和package_id相同,因此第3行和第10行未被选中。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

这就是你要找的东西:

SELECT MIN(id), number, package_id, date
FROM MyTable
GROUP by number, package_id, date

它当然满足您的预期结果集。