Как сделать все записи - PullRequest
       7

Как сделать все записи

0 голосов
/ 15 февраля 2019

Я хочу отобразить, используя MYSQL5.5 все записи, добавив Count в качестве нового столбца и используя определенный порядок DESC в COUNT.

Пример данных:

ID|ID_2|FIRST|SECOND|
88|300 |1    |4
81|300 |1    |5
7 |300 |2    |1
33|300 |3    |4
99|300 |1    |4
84|300 |1    |5
6 |300 |1    |4
34|300 |3    |5

Запрос:

SELECT a.ID,a.ID_2, a.FIRST, a.SECOND, COUNT(a.ID) as testing
FROM table AS a
WHERE a.ID_2=300
GROUP BY a.ID_2, a.FIRST, a.SECOND
ORDER BY testing DESC

С помощью приведенного выше кода я получаю правильный номер COUNT (a.ID) для всех комбинаций FIRST и SECOND, а также COUNT.

Результаты:

a.ID|a.ID_2|a.FIRST|a.SECOND|testing|
88  |300   |1      |4       |3        
81  |300   |1      |5       |2
7   |300   |2      |1       |1
33  |300   |3      |4       |1
99  |300   |3      |5       |1

Но я хотел бы получить следующее:

a.ID|a.ID_2|a.FIRST|a.SECOND|testing|
88  |300   |1      |4       |3  
99  |300   |1      |4       |3
6   |300   |1      |4       |3      
81  |300   |1      |5       |2
85  |300   |1      |5       |2
7   |300   |2      |1       |1
33  |300   |3      |4       |1
99  |300   |3      |5       |1

Не могли бы вы помочь с этим?Даже с временным столом.

Спасибо за помощь

1 Ответ

0 голосов
/ 16 февраля 2019

С MySQL <8.0 вы можете самостоятельно объединить таблицу с агрегированным подзапросом, который вычисляет соответствующие значения: </p>

SELECT t.*, t2.testing
FROM
    mytable t
    INNER JOIN (
        SELECT a.ID_2, a.FIRST, a.SECOND, COUNT(a.ID) as testing
        FROM mytable a
        GROUP BY a.ID_2, a.FIRST, a.SECOND
    ) t2 ON t.ID_2 = t2.ID_2 AND t.FIRST = t2.FIRST AND t.SECOND = t2.SECOND
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...