Что за странное поведение с SELECT COUNT (отличный от CLIEND_ID) из таблицы clients_data? - PullRequest
1 голос
/ 24 октября 2011

Не могли бы вы объяснить это странное поведение оператора count (отдельный client_id).

для:

SELECT count(distinct client_id) 
from clients_data where bank_name ='SABB' and tstatus = 0 

У меня 6000 строк

и для

SELECT count(distinct client_id)
from clients_data where bank_name ='SABB' and tstatus = 0  and cif_type = 'CARD'

У меня 5964, а для

SELECT count(distinct client_id) 
from clients_data where bank_name ='SABB' and tstatus = 0  and cif_type = 'LOAN'

у меня 42 строки.но

5964 + 42 = 6006

и первый запрос получает только 6000.откуда взялись эти дополнительные 6 строк?

Примечание: данные сейчас недоступны для каких-либо предложений.изображение здесь :

Ответы [ 4 ]

3 голосов
/ 24 октября 2011

Может быть шесть client_id, которые имеют как КАРТУ, так и КРЕДИТ.

0 голосов
/ 24 октября 2011

Предположим, что 6 ваших client_ids появляются в строках с cif_type из 'LOAN', а также в строках с cif_type из 'CARD'.Попробуйте подсчитать строки в 3 ваших условиях без DISTINCT.Вы должны найти номера, а затем сложить.

0 голосов
/ 24 октября 2011
SELECT client_id FROM clients_data GROUP by client_id HAVING count(client_id) > 1

У вас есть несколько записей для определенного client_id?Запуск выше скажет вам.

0 голосов
/ 24 октября 2011

Может быть, у вас есть некоторые значения, которые имеют пустой или нулевой cif_type.

...