Правильно вам запрос отработал. Вы описали ситуацию, но не задали вопрос, что именно хотите в результате получить? Например, в первом случае выдаётся 2 записи, одна лишняя, так добавьте ограничение в where у запроса по тем полям, где лишняя строка. И потом, почему сразу join, а не where?
Я бы пошёл с другого конца. Получение 1млн. строк - это явно не конечный результат, что вы с ними хотите сделать? Может написать такой запрос, который выдаст сразу конечный результат?
Жаль, что у вас не postgresql, а так как вам надо редко и нечасто обращаться к этим данным, то можно было бы сделать партицирование этой таблички и перенести хранилище таблицы на другой диск (медленный и недорогой).
А если в выборке будет ещё одна запись с id=1?
Вы не можете менять кол-во столбцов в запросе.
Можно сделать по-другому, первый столбец id, второй массив из count и третий - дата.
Добиться этого можно функцией array_agg
Ответ написан
Комментировать
Комментировать
Оценили как «Нравится»
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.