Подсчитать отдельный столбец - PullRequest
0 голосов
/ 03 октября 2019

У меня есть база данных, представленная ниже:

Index   |Policy Series  |Policy Number  |Risk Code
--------|---------------|---------------|---------
377626  |AV             |1              |15AVL
377626  |AV             |1              |15AVL
377626  |AV             |1              |15AVA
377971  |AV             |3              |15AVL
377980  |AV             |4              |15AVL
377980  |AV             |4              |15AVA
377980  |AV             |4              |15AVF
378035  |AV             |5              |15AVL
378036  |AV             |6              |15AVL
378220  |AV             |7              |15AVL
378222  |AV             |8              |15AVL
378231  |AV             |10             |15AVL
387124  |AV             |11             |15AVL
388702  |AV             |26             |15AVL
388707  |AV             |25             |15AVL
388710  |AV             |24             |15AVL
388712  |AV             |23             |15AVL
388716  |AV             |22             |15AVL
388722  |AV             |21             |15AVL
388729  |AV             |20             |15AVL

Я хотел бы найти решение для получения результата, который показывает мне, сколько кодов имеет индекс. Кроме того, я хотел бы иметь такой результат

Index      Code     Number of codes     Type of codes
-----------------------------------------------------
377626     15AVL       2                     1
377626     15AVA       1                     2
377971     15AVL       1                     1
377980     15AVL       1                     1
377980     15AVA       1                     2  
377980     15AVF       1                     3                     

Любой Index может иметь несколько кодов.

Я должен выделить в базе данных индекс, который имеет более одного типаКодекса. Например, индекс 11 не может иметь 15 AXL и 15 AXF. Это ошибка в моей базе данных. Пожалуйста, найдите ниже мой запрос:

SELECT p."Index",
       r."Code",
       COUNT(*)
FROM "Pols" p
     LEFT JOIN "PolsRisc" pr ON pr."PID" = p."Index"
     LEFT JOIN "Riscs" r ON r."Index" = pr."RID"
WHERE p."PSN" IN ('AX', 'AV')
GROUP BY r."Code",
         p."Index"
ORDER BY p."Index";

1 Ответ

0 голосов
/ 03 октября 2019
SELECT Index, Code, Count(*)
FROM [database_name]
GROUP BY Code, Index
ORDER BY Index;
...