Подтвердить что ты не робот

SQL Order By Count

Если у меня есть таблица и данные вроде этого:

ID |  Name  |  Group   

1    Apple     A    

2    Boy       A

3    Cat       B

4    Dog       C

5    Elep      C

6    Fish      C

и я хочу заказать его в соответствии с общей суммой Group от наименьшего до наибольшего значения, например: A - 2 записи, запись B - 1, C - 3 записи, поэтому она станет:

3    Cat       B

1    Apple     A    

2    Boy       A

4    Dog       C

5    Elep      C

6    Fish      C

Я пробовал

    $sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)";

но он просто возвращает мне один результат.

Есть ли намеки? Спасибо.

4b9b3361

Ответ 1

Сначала вам необходимо агрегировать данные, это можно сделать с помощью предложения GROUP BY:

SELECT Group, COUNT(*)
FROM table
GROUP BY Group
ORDER BY COUNT(*) DESC

Ключевое слово DESC позволяет сначала показать наивысший счет, ORDER BY по порядку по порядку в порядке возрастания, который сначала показывает самый низкий счет.

Ответ 2

Попробуйте:

SELECT count(*),group FROM table GROUP BY group ORDER BY group

заказывать по счету убывания do

SELECT count(*),group FROM table GROUP BY group ORDER BY count(*) DESC

Это сгруппирует результаты с помощью столбца group, возвращающего group и count, и вернет порядок в group order

Ответ 3

SELECT * FROM table 
group by `Group`
ORDER BY COUNT(Group)

Ответ 4

SELECT Group, COUNT(*) FROM table GROUP BY Group ORDER BY Group

или заказать по счету

SELECT Group, COUNT(*) AS count FROM table GROUP BY Group ORDER BY count DESC

Ответ 5

Ниже приведена противоположность тому, что у вас есть. (Колонка группы уведомлений)

SELECT
    *
FROM
    myTable
GROUP BY
    Group_value,
    ID
ORDER BY
    count(Group_value)

Дайте мне знать, если с вами все в порядке...

Я пытаюсь получить то, что вы хотите тоже...

Ответ 6

Попробуйте использовать ниже запрос:

SELECT
    GROUP,
    COUNT(*) AS Total_Count
FROM
    TABLE
GROUP BY
    GROUP
ORDER BY
    Total_Count DESC

Ответ 7

Q. Укажите название каждого шоу и количество раз, когда оно было проведено. Перечислите шоу, которое проводилось чаще всего в первую очередь.

event_id show_id event_name judge_id
0101    01  Dressage        01
0102    01  Jumping         02
0103    01  Led in          01
0201    02  Led in          02
0301    03  Led in          01
0401    04  Dressage        04
0501    05  Dressage        01
0502    05  Flag and Pole   02

Ans:

select event_name, count(show_id) as held_times from event 
group by event_name 
order by count(show_id) desc

Ответ 8

... ни один из других ответов, кажется, не делает то, что спросил спрашивающий.

Для таблицы с именем "вещи" со столбцом "группа":

SELECT
  things.*, counter.count
FROM
  things
LEFT JOIN (
  SELECT
    things.group, count(things.group) as count
  FROM
    things
  GROUP BY
    things.group
) counter ON counter.group = things.group
ORDER BY
  counter.count ASC;

который дает:

id | name  | group | count 
---------------------------
3  | Cat   | B     | 1
1  | Apple | A     | 2
2  | Boy   | A     | 2
4  | Dog   | C     | 3
5  | Elep  | C     | 3
6  | Fish  | C     | 3