Объяснение сценария:
У меня есть настоящая государственная система аренды объектов, построенная на базе данных Oracle. Где в моей системе у меня есть список групп зданий, список зданий, и у каждого здания есть свои единицы.
в каждом здании есть несколько единиц, цены на которые различаются в зависимости от местоположения и количества комнат, кухни, ванной комнаты, балкона и парковки ... и т. Д.
например:
- квартиры с видом на улицу с 3 спальнями ($ 15K / год)
- вид сзади с 3 спальнями ($ 13K / год)
- угловые квартиры с видом на улицу и сбоку с 4 спальнями ($ 18K / год)
- угловые квартиры с видом на улицу и сбоку с 4 спальнями ($ 18K / год)
- и так далее ...
некоторые юниты сдаются в аренду, а некоторые юниты не сдаются в аренду
Я хочу получить список единиц на основе его спецификаций и прайс-листа.
Я закодировал запрос, чтобы получить список вроде этого:
SELECT GR.G_NO, MIN(U.ANNUAL_RENT),MIN(U.U_NO), MIN(U.U_CODE), MIN(UT.UNIT_TYPE), U.VARAND_NAME, U.UNIT_STATE, COUNT(U.UNIT_STATE) , COUNT(UT.UNIT_TYPE), min(U.COUNT_ROOM), min(U.PATH_NO), min(U.GALARY_NO),
FROM UNITS U
JOIN UNIT_TYPE UT
ON UT.UNIT_NO = U.UNIT_NO
JOIN GROUPS GR
ON GR.G_NO = U.G_NO
JOIN BUILDS B
ON B.B_NO = U.B_NO
WHERE
GR.G_NO = B.G_NO
GROUP BY GR.G_NO, B.B_NAME, U.VARAND_NAME, U.UNIT_STATE, U.ANNUAL_RENT
ORDER BY GR.G_NO, B.B_NAME, MIN(U.ANNUAL_RENT),MIN(U.U_NO)
FETCH FIRST 5 ROWS ONLY
Где вывод выглядит так:
если вы посмотрите на записи 3 и 4, они имеют одинаковую спецификацию и одинаковые цены, где различаются только UNIT_STATE и COUNT (U.UNIT_STATE)
(y) арендованный (1 единица) или (N) не арендованный (2 единицы)
мне нужно получить счетчик COUNT (U.UNIT_STATE) для отдельных столбцов, подобных этому
где я получаю:
- Общее количество единиц по типу и характеристикам
- Общее количество Арендованных единиц такого же типа и спецификаций,
- Общее количество Не сданных в аренду единиц такого же типа и спецификаций,
так, например, для записи № 3 общее количество единиц равно 3, где 1 единица арендуется, а 2 единицы не сдана в аренду.