За последние 24 часа нас посетили 56749 программистов и 1682 робота. Сейчас ищут 1207 программистов ...

Максимальное количество совпадений

Тема в разделе "MySQL", создана пользователем kit, 11 окт 2013.

  1. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Уважаемые друзья! Нужна ваша помощь!
    Есть таблица:
    id menu1 menu2
    1 2 2
    2 1 3
    3 1 3
    4 2 2
    5 2 1
    6 1 3
    Необходима составить запрос который бы считал совпадения строк по столбцам menu1 и menu2 в порядке убывания.
    Т.е. максимальное совпадение при menu=1 и menu=3 (3 совпадения), следующее при menu=2 и menu=2 (2 совпадения) и наконец menu=2 и menu=1 (1 совпадение).
    Надеюсь понятно изложил задачу. Как реализовать ума не приложу.
    Помогите пожалуйста! Заранее признателен.
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    можно так
    Код (Text):
    1. SELECT concat(T.MENU1,T.MENU2)
    2. FROM T 
    3. GROUP BY concat(T.MENU1,T.MENU2)
    4. order by count(*) desc
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    надо разделитель, а то 12 1 и 1 21 будут считаться одним и тем же.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Код (Text):
    1. SELECT menu1, menu2, COUNT(*)
    2. FROM t
    3. GROUP BY 1,2
    4. ORDER BY 3 DESC
     
  5. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Друзья спасибо большое!
    Функция concat супер. А то я хотел уже вводить дополнительный столбец в котором склеивались бы меню1 и меню2.
    Разделитель поставил.
    artoodetoo, а что за цифры 1,2 и 3 в запросе?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    интуитивно непонятно? это оно и есть ;)
    лучше бы уже попробовал и сказал "всем спасибо", как-то ты не нацелен на результат.
     
  7. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    неа, не понятно, по этому и спрашиваю: "оно" - это что?
    Пока пробую запрос runcore и уже есть положительные результаты (на которые я нацелен).
    artoodetoo ты не исключение ))
    Что за цифры-то?
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    забей. это слишком сложно