帮助我写一段数据质量打分的sql
时间: 2023-06-26 09:10:11 浏览: 137
一段有用的sql,分析
当我们谈论数据质量时,通常需要考虑数据的完整性、准确性、一致性、可靠性、可重复性等方面。以下是一个简单的 SQL 查询,用于计算某个表中数据的质量得分,该表包含以下字段:
- `id`:唯一标识符
- `name`:名称
- `age`:年龄
- `gender`:性别
- `email`:电子邮件地址
- `address`:地址
```sql
SELECT
CAST(COUNT(*) AS FLOAT) / (SELECT COUNT(*) FROM my_table) * 100 as data_completeness_score,
AVG(CASE WHEN age > 0 THEN 1 ELSE 0 END) * 100 as data_accuracy_score,
AVG(CASE WHEN gender IN ('Male', 'Female') THEN 1 ELSE 0 END) * 100 as data_consistency_score,
AVG(CASE WHEN email LIKE '%@%' THEN 1 ELSE 0 END) * 100 as data_reliability_score,
AVG(CASE WHEN address NOT LIKE '' THEN 1 ELSE 0 END) * 100 as data_validity_score
FROM
my_table;
```
此查询将返回一个包含以下五个字段的结果集:
- `data_completeness_score`:数据完整性得分,表示表中存在的记录数与总记录数的比率。
- `data_accuracy_score`:数据准确性得分,表示表中年龄字段中大于0的记录数与总记录数的比率。
- `data_consistency_score`:数据一致性得分,表示表中性别字段中包含 'Male' 或者 'Female' 的记录数与总记录数的比率。
- `data_reliability_score`:数据可靠性得分,表示表中电子邮件地址字段中包含 '@' 符号的记录数与总记录数的比率。
- `data_validity_score`:数据有效性得分,表示表中地址字段不为空的记录数与总记录数的比率。
请注意,此查询仅为示例,实际的数据质量打分可能需要考虑更多的因素,例如唯一性限制、外键约束等。
阅读全文