Это довольно сложный вопрос, но я уверен, что кто-то здесь узнает ответ через 2 минуты, и я буду чувствовать себя глупо.
У меня есть таблица маршрутов,имена доставки и сроки доставки.Допустим, это выглядит так:
+------------+---------------+-------+
| ROUTE CODE | NAME | TIME |
+------------+---------------+-------+
| A | McDonald's | 5:30 |
| A | Arby's | 5:45 |
| A | Burger King | 6:00 |
| A | Wendy's | 6:30 |
| B | Arby's | 7:45 |
| B | Arby's | 7:45 |
| B | Burger King | 8:30 |
| B | McDonald's | 9:00 |
| C | Wendy's | 9:30 |
| C | Lion's Choice | 8:15 |
| C | Steak N Shake | 9:50 |
| C | Hardee's | 10:30 |
+------------+---------------+-------+
То, что я хочу, чтобы результат возвращался, выглядит примерно так:
+------------+---------------+------+
| ROUTE CODE | NAME | TIME |
+------------+---------------+------+
| A | McDonald's | 5:30 |
| B | Arby's | 7:45 |
| C | Lion's Choice | 8:15 |
+------------+---------------+------+
Итак, что я хочу, это имя минимального времени для каждогокод маршрута.
Я написал запрос, который поможет мне в этом (и не стесняйтесь улучшать этот запрос, если вы считаете, что есть более эффективный способ сделать это):
SELECT main1.route_code, main1.first_stop, main2.name
FROM
(SELECT route_code, min(time) as first_stop FROM table1 WHERE date = yesterday GROUP BY route_code) main1
JOIN
(SELECT route_code, name, time FROM table1 WHERE date = yesterday) main2
ON main1.route_code = main2.route_code and main1.first_stop = main2.time
Здесь я нуждаюсь в твоей помощи.Если у меня одинаковое время, он возвращает эту строку дважды, и я хочу только один раз.Так, например, приведенный выше запрос дважды возвращает Arby's для кода маршрута «B», потому что он имеет одинаковое время.Я хочу видеть это только один раз, я никогда не хочу видеть что-либо из маршрута более одного раза.
Кто-нибудь может мне помочь?Большое спасибо!