Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Erik BОтветов: 1

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

Вот сделка:

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

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

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

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

  • Может быть, вам следует добавить дополнительный термин в предложение WHERE? wildplasser 09.08.2013

sqlgroup-byselectdistinct

Ответы

Ответ 1 · рейтинг 1 · Michael Goldshteyn

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы