Я пытаюсь создать запрос для подсчета количества кабелей в каждом местоположении активов. Поток - Project-> Asset-> Cable. Один проект может иметь несколько активов с несколькими кабелями, связанными с этими активами. Ниже приведен снимок данных.Oracle SQL Count на основе условий
RECORD_ID PARENT_RECORD_ID FORM_NAME PARENT_FORM FIELD_NAME VALUE
1604 1603 asset project serial b345s
1604 1603 asset project location OH
1605 1604 cable asset zone green
1606 1603 asset project location NY
1607 1606 cable asset port 2
Как вы можете видеть выше, на уровне кабеля, то PARENT_RECORD_ID является «record_id» актива. Это всего лишь моментальный снимок, поскольку есть тысячи строк, с рядом данных, но я пытался показывать только соответствующие данные.
Мне нужно выяснить способ свертывания количества кабелей на один актив, а затем группировать активы по «местоположению». «Место» - это значение в столбце FIELD_NAME для актива, со значением, связанным с ним в столбце VALUE. Например, выше, идентификатор актива 1604, «местоположение» - «ОН».
До сих пор мне удалось подсчитать общее количество кабелей. Мне просто нужно выяснить, как разбить их на «местоположение» своего «актива».
SELECT
COUNT(DISTINCT RECORD_ID) "Number of Cables"
FROM
PROJECT_TABLE
WHERE
LOWER(FORM_NAME) = 'cable'
Текущий результат выше запроса:
Number of Cables
3137
То, что я хотел бы результат выглядеть следующим образом:
Location Number of Cables
OH 552
NY 1042
MI 49
CA 1494
Любая помощь очень ценится! Благодаря!
Ну, в какой колонке находится «местоположение?» – OldProgrammer
Адрес местонахождения? Если это отдельно от той же таблицы, включите ее в свой оператор select. Иначе присоедините его к другой таблице. Кажется прямым, если я не пропущу логику? – programnub112
Прошу прощения, я проясню это в сообщении. «location» - это значение в столбце «FIELD_NAME» для актива. Столбец VALUE в этой же строке имеет состояние, связанное с этим местоположением FIELD_NAME. – ad2387