Mysql 为另一列中的每个值选择不同的列,然后按分组

Mysql 为另一列中的每个值选择不同的列,然后按分组,mysql,sql,select,group-by,distinct,Mysql,Sql,Select,Group By,Distinct,我是mySQL的新手,在过去的两天里,我一直很难让它正常工作。我不知道标题是否与我试图修复的内容相关,但如果不正确,请纠正我 交易如下: 我有4个专栏。。。id、编号、包裹id和日期 id-每次插入新行时递增 数字-只有两位数字 包\u id-包的id 日期-插入了日期和时间行 下面是一个示例表的样子:(我从日期中省略了时间) 我不仅尝试为数字和分组日期选择distinct。我还试图确保它对package_id列中的每个唯一值都这样做 为了更好地解释,当我选择*时,我希望输出是这样的: id

我是mySQL的新手,在过去的两天里,我一直很难让它正常工作。我不知道标题是否与我试图修复的内容相关,但如果不正确,请纠正我

交易如下:

我有4个专栏。。。id、编号、包裹id和日期

id-每次插入新行时递增
数字-只有两位数字
包\u id-包的id
日期-插入了日期和时间行

下面是一个示例表的样子:(我从日期中省略了时间)

我不仅尝试为数字和分组日期选择distinct。我还试图确保它对package_id列中的每个唯一值都这样做

为了更好地解释,当我选择*时,我希望输出是这样的:

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
正如您所看到的,只有第3行和第10行没有被选中,因为同一天内相同的编号和包裹id在一起


我如何才能做到这一点?

这就是您想要的:

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

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

这就是您想要的:

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

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

也许您应该在
WHERE
子句中添加一个额外的术语?也许您应该在
WHERE
子句中添加一个额外的术语?效果非常好!谢谢你,太好了!谢谢