我是 mySQL 的新手,在过去的 2 天里我很难让它工作。我不知道标题是否与我要修复的内容相关,但如果不正确,请纠正我。
这是交易:
我有 4 列...id、number、package_id 和 date。
id - 每次插入新行时递增
number - 只是一个 2 位数
package_id - 包的 ID
date - 插入日期和时间行
下面是一个示例表格:(我省略了日期中的时间)
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 列中的每个唯一值都这样做。
为了更好地解释,这就是我希望在我选择 * 时的输出:
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 行没有被选中,因为同一天的相同编号和 package_id 在一起。
我怎样才能做到这一点?
最佳答案
这是你要找的吗:
SELECT MIN(id), number, package_id, date
FROM MyTable
GROUP by number, package_id, date
肯定满足你的预期结果集。
关于mysql - 为另一列中的每个值选择不同的列,然后分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18152484/