Как получить сумму всех значений максимального столбца - PullRequest
1 голос
/ 19 апреля 2019

У меня есть проблема, получите cate и point ниже.

Это запрос к таблице

-------------------------------------------
id    title    cate    query_id    point   |
-------------------------------------------
1     A        1       1           1       |
2     B        1       1           3       |
3     C        1       1           2       |
4     A        2       2           3       |
5     B        2       2           2       |
6     C        1       2           1       |
--------------------------------------------

Если я сгруппируюсь (cate, query) и получу максимальный балл

----------------------------
cate    query_id    point   |
----------------------------
1       1           3       |
2       2           3       |
1       2           1       |
----------------------------

но я хочу получить сумму максимальных баллов по cate следующим образом:

--------------
cate    point |
--------------
1         4   | 
2         3   |
--------------

Надеюсь, вы могли бы помочь мне.

Ответы [ 3 ]

0 голосов
/ 19 апреля 2019

с этим вы получите желаемый результат

query::groupBy(cate,query_id)->sum(point)
0 голосов
/ 19 апреля 2019

Во-первых, вам нужно использовать group by (cate, query) и получать cate, query_id, max (point) .

SELECT cate, query_id, MAX(point) AS point
FROM demo
GROUP BY cate, query_id

демо на dbFiddle

Теперь вы хотите получить сумму баллов по группам из приведенного выше запроса .

SELECT p.cate, SUM(p.point) AS point
FROM (
    SELECT cate, query_id, MAX(point) AS point
    FROM demo
    GROUP BY cate, query_id
) AS p
GROUP BY cate;

демо на dbfiddle

0 голосов
/ 19 апреля 2019

Вы можете сделать агрегат агрегата, используя подзапрос производной таблицы, например:

SELECT cate, SUM(point) AS point
FROM (
    SELECT cate, query_id, MAX(point) AS point
    FROM MyTable
    GROUP BY cate, query_id
) AS t
GROUP BY cate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...