- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть БД, в ней поля P1, P2, P3 и записи:
Надо выбрать записи, где второе поле (P2) имеет максимальное значение
Пробовал так:
- работет.Но нужны и данные P3, а если делать так
не работает, первые два поля верное значение, а P3 выводит совсем не то
Элементы в группе имеют случайный порядок. Поэтому для P3 выводится случайное значение из группы с одинаковым P1.
Есть "типа хак" для такой выборки, делайте нечто вроде
select p1, max(concat_ws('~',p2,p3)) from table1 group by p1
и потом разбирайте результат на php - простым explode по ~. В таком случае у Вас получится что к p2 прицепится именно правильный p3, т.к. конкатятся они с учетом строк где находятся.
То что нужно, огромное спасибо
P.s. не то, там сравнение по всей строке concat_ws('~',p2,p3) происходит, т.е. 47~6 будет больше чем 327~2
humbert,
?
Лень догадываться, что у Вас за СУБД - из вопроса не видно.
В общем случае, один из вариантов решения такой задачи можно искать вот в этом направлении:
kud, работает, долго только. Надо с индексами поработать.
humbert,
можно еще немного упростить, в начале запроса:
То есть, P2 вместо MAX(P2)
То что нужно, огромное спасибо
P.s. не то, там сравнение по всей строке concat_ws('~',p2,p3) происходит, т.е. 47~6 будет больше чем 327~2
Если оба числовых, то скорее всего поможет
Плюсы тут в том, что нет джоинов лишних:-\ Разбирать результат ничуть не сложнее.