За последние 24 часа нас посетили 17965 программистов и 1650 роботов. Сейчас ищут 1624 программиста ...

Как получить правильный count?

Тема в разделе "MySQL", создана пользователем servitpol, 21 фев 2017.

  1. servitpol

    servitpol Новичок

    С нами с:
    17 авг 2016
    Сообщения:
    63
    Симпатии:
    3
    Всем привет! Други, подскажите как получить из такого рода таблицы:
    pageid
    1057
    1057
    1057
    1057
    1057
    1057
    1059
    1057
    1059
    1057
    1059
    1054
    1055
    1054
    1055
    1054
    1055
    1054
    1055
    1058
    1058
    1058
    1058
    1058
    1058

    Кол-во повторений?
    Объясню на примере. Такой запрос:
    Код (Text):
    1. SELECT pageid, count(*) FROM Content GROUP BY pageid
    Вернет мне:

    Код (Text):
    1. pageid count(*)
    2. 1054    4
    3. 1055    4
    4. 1056    4
    5. 1057    8
    6. 1058    9
    7. 1059    3
    8. 1060    5
    9. 1061    10
    10. 1062    11
    11. 1063    2
    12. 1064    7
    13. 1065    12
    14. 1066    5
    А мне нужно чтоб вернуло:
    Код (Text):
    1. pageid count(*)
    2. 1057    8
    3. 1057    8
    4. 1057    8
    5. 1057    8
    6. 1057    8
    7. 1057    8
    8. 1059    3
    9. 1057    8
    10. 1059    3
    11. 1057    8
    12. 1059    3
    13. 1054    4
    14. 1055    4
    15. 1054    4
    16. 1055    4
    17. 1054    4
    18. 1055    4
    19. 1054    4
    20. 1055    4
    21. 1058    9
    22. 1058    9
    23. 1058    9
    24. 1058    9
    25. 1058    9
    26. 1058    9
    В общем чтоб не "обрезало" все данные...
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Данные то не обрезаются, они группируются.
    --- Добавлено ---
    Ты как бы уже получил количество повторений. Count на это и указывает.
     
  3. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    PHP:
    1. SELECT c1.pageid,
    2.       (SELECT count(*)
    3.     FROM Content c2
    4.     WHERE c2.pageid = c1.pageid
    5.      )
    6. FROM Content c1
    7. GROUP BY c1.pageid
     
    #3 Drema, 21 фев 2017
    Последнее редактирование модератором: 21 фев 2017
    servitpol нравится это.
  4. servitpol

    servitpol Новичок

    С нами с:
    17 авг 2016
    Сообщения:
    63
    Симпатии:
    3
    Спасибо! Ваш запрос впринципе возвращает тоже самое, но если убрать GROUP BY c1.pageid - то возвращает то что надо. Еще раз большое спасибо!!