MariaDB: Count Different는 도청되었습니까?
다음 3가지 요청이 있습니다.
SELECT COUNT(DISTINCT origine_client_id, annee_imputation)
FROM dossier d1;
34438
SELECT COUNT(DISTINCT d2.origine_client_id, d2.annee_imputation)
FROM (SELECT origine_client_id, annee_imputation
FROM dossier) as d2;
34438
SELECT COUNT(*)
FROM (SELECT DISTINCT origine_client_id, annee_imputation
FROM dossier) as d3;
34478
하지만 같은 결과를 얻지 못했습니다.왜일까요? (Mariadb를 사용하고 있습니다)
편집:
@jarlh
SELECT COUNT(DISTINCT origine_client_id) FROM dossier;
=>19488
SELECT COUNT(DISTINCT annee_imputation) FROM dossier;
=>42
이름 없음 @a_horse_no_name
네, 늘 값이 있습니다.
SELECT COUNT(id) FROM dossier WHERE annee_imputation IS NULL;
=> 1
SELECT COUNT(id) FROM dossier WHERE origine_client_id IS NULL;
=> 289 711
SELECT COUNT(id) FROM dossier WHERE origine_client_id IS NULL AND annee_imputation IS NULL;
=> 1
문서 기준:
NULL이 아닌 다른 값의 카운트를 반환합니다.
이 구문은 비표준 MySQL/MariaDB 확장입니다."non-NULL"은 모두 카운트할 NULL이 아닌 것으로 간주됩니다.
데모:
CREATE TABLE dossier
AS
SELECT 1 origine_client_id, 2 annee_imputation UNION ALL -- both values provided
SELECT NULL, NULL UNION ALL
SELECT NULL origine_client_id, 1 annee_imputation UNION ALL
SELECT 1 origine_client_id, NULL annee_imputation;
쿼리:
SELECT COUNT(DISTINCT origine_client_id, annee_imputation) FROM dossier d1;
-- 1
SELECT COUNT(DISTINCT d2.origine_client_id, d2.annee_imputation)
FROM (SELECT origine_client_id, annee_imputation FROM dossier) as d2;
-- 1
SELECT COUNT(*)
FROM (SELECT DISTINCT origine_client_id, annee_imputation FROM dossier) as d3;
-- 4
이름이 없는 a_horse_no_name이 적절한 질문을 한 것 같습니다.이것은 더 단순하고 유사할 수 있습니다.
CREATE TABLE t (s1 INT PRIMARY KEY, s2 INT);
INSERT INTO t VALUES (1, 1), (2, NULL), (3, NULL);
SELECT COUNT(DISTINCT s2) FROM t;
SELECT COUNT(*) FROM (SELECT DISTINCT s2 FROM t) AS x;
첫 번째 경우 함수가 완료되기 전에 늘이 제거되므로 답은 1입니다.두 번째 경우 Null은 함수가 완료되기 전에 제거되지 않으므로 답은 2입니다.업데이트 후 추가: 명확하게 말하지 못해 죄송합니다. 이 예에서는 null이 제거된다는 경고가 없다는 점을 제외하고 SQL 표준에 위배되지 않는 예상 동작을 보여 줍니다.
언급URL : https://stackoverflow.com/questions/64860203/mariadb-is-count-distinct-bugged
'source' 카테고리의 다른 글
Vue JS를 사용하여 HTML에서 동일한 태그에 "v-if"와 "v-else"를 사용하는 방법은 무엇입니까? (0) | 2022.12.04 |
---|---|
여러 열에 걸쳐 고유한 sqlalchemy (0) | 2022.12.04 |
inside map() 함수 내 인덱스 (0) | 2022.11.24 |
NumPy 어레이에서 NaN 값을 삭제하려면 어떻게 해야 합니까? (0) | 2022.11.24 |
Mac용 ext-zip 설치 (0) | 2022.11.24 |