У меня есть база данных, представленная ниже:
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";