Выберите отдельный столбец для каждого значения в другом столбце, затем сгруппируйте по

Я новичок в mySQL, и за последние 2 дня мне было трудно заставить это работать. Я не знаю, правильно ли заголовок относится к тому, что я пытаюсь исправить, но если это не так, пожалуйста, поправьте меня.

Вот сделка:

У меня есть 4 столбца... идентификатор, номер, package_id и дата.

id – увеличивается каждый раз при вставке новой строки
число – просто двузначное число
package_id – идентификатор пакета< br> 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.

Чтобы лучше объяснить, это то, что я хочу, чтобы вывод был похож, когда я 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

Как видите, только строки 3 и 10 не были выбраны из-за одного и того же числа и package_id вместе в один и тот же день.

Как я могу это сделать?


person Erik B    schedule 09.08.2013    source источник
comment
Может быть, вам следует добавить дополнительный термин в предложение WHERE?   -  person wildplasser    schedule 09.08.2013


Ответы (1)


Это то, что вы ищите:

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

Это, безусловно, удовлетворяет ваш ожидаемый набор результатов.

person Michael Goldshteyn    schedule 09.08.2013
comment
Работает идеально! Спасибо - person Erik B; 09.08.2013