Как я могу подсчитать количество записей, возвращаемых в SQL? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть таблица с номером дела, и она соединена с таблицей, которая является лицом, прикрепленным к делу. Каждый человек может иметь несколько отчетов, которые находятся в таблице отчетов. Я хочу сообщить о нескольких полях из каждого из них, но я также хочу сообщить общее количество отчетов на человека. Например, если у Джона Смита есть три отчета, то в последнем столбце для трех записей, которые будут заполнены из приведенного ниже кода, я хочу, чтобы он сказал 3.

Без учета числа, у меня есть:

SELECT C.attr2459 AS [Case Number], INS.attr2750 AS SSN, LE.attr2534 AS [Report Provider]
FROM hsi.rmObjectInstance1131 AS C INNER JOIN 
     hsi.rmObjectInstance1153 AS INS ON C.fk3056 = INS.objectID INNER JOIN 
     hsi.rmObjectInstance1134 AS LE ON INS.objectID = LE.fk2823
WHERE (C.attr2460 = 'Open')

C - таблица случаев. INS для человека, а LE для отчета. Это работает, как и ожидалось, без ошибок. Я просто не уверен, как подсчитать, сколько отчетов для каждого человека.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

Вы можете использовать оконные функции, если ваша база данных поддерживает их.

Я не уверен, какой столбец в вашем наборе результатов представляет персона ; при условии, что это LE.attr2534, это будет:

SELECT 
    C.attr2459 AS [Case Number], 
    INS.attr2750 AS SSN, 
    LE.attr2534 AS [Report Provider],
    COUNT(*) OVER(PARTITION BY INS.attr2750) no_records
FROM hsi.rmObjectInstance1131 AS C INNER JOIN 
     hsi.rmObjectInstance1153 AS INS ON C.fk3056 = INS.objectID INNER JOIN 
     hsi.rmObjectInstance1134 AS LE ON INS.objectID = LE.fk2823
WHERE (C.attr2460 = 'Open')
1 голос
/ 16 апреля 2020

Включить COUNT (*) OVER (PARTITION BY INS.attr2750, INS.attr2749) no_records

, чтобы получить его для подсчета записей по его социальной и фамилии.

...