SQL数据分析多表多字段比对方法

上周我在读SQL分析文档。
相当完整。

我们首先来谈谈表之间的条目数。
2 02 3 年从事数据分析,首先要检查项目数是否正确。
SELECT...COUNT()...比较方法。
我已经尝试过了。
相当准确。
这在上周的项目中使用过。

我们来谈谈比较字段值。
比较完整字段。
使用 UNION 删除重复项。
这个方法对我朋友来说效果很好。
部分场率。
指定 ID 和名称。
有很多场景。
最近的项目中用到了它。
写作风格也很熟悉。

差异细节。
查找不同的 ID 和 NAME。
这就是FULL OUTER JOIN的写法。
起初我不明白。
后来我才明白。
相当麻烦。

查找独特的数据。
不存在,请勿进入。
请注意,NOT IN 处理 NULL。
我以前经历过这个。
该数据是 2 02 3 年的。
NULL 是错误的。
结果根本不匹配。

验证 ID 的唯一性。
按 ID 计数分组()。
这个很简单。
多对多关系。
双向验证。
逻辑很清楚。
只是要小心你的写作方式。

准备数据。
创建表并插入数据。
它是镶木地板格式。
我对它不是很熟悉。
但我明白。
测试数据包含 NULL 和空字符串。
这一点非常重要。

注释。
处理 NULL。
连续是一个好方法。
索引优化。
大型表需要建立索引。
导出详细分析。
这个习惯需要养成。

让我们从整体上来看。
这些方法涵盖了不少。
从项目数量到字段。
从排他性到关系。
一切都被掩盖了。
只是在实践中要小心。
特别是处理 JOIN 和 NULL。

算了。
由你决定。

SQL sum函数一对多场景,消除笛卡尔积

哦,当我看到贷款表格和还款表格的问题时,我的头开始旋转。
您可以使用这个 load_id ;是的,这个外键关联;你说可能会有问题。
贷款表和还款表一旦联动,数据就变得混乱; 1 1 0.00、6 5 .00、2 7 0.00,嘿,这些数字。
乍一看,有些不对劲。

当时我很困惑。
load_id 为 5 的贷款表对应还款表中的 3 个数据点。
load_id 8 对应还款表中的数据2 我算了算,结果是 2 7 0.00。
是的,5 03 加 6 02 ;这不是2 7 0吗?但问题就在这里。
一旦贷款时间表和还款时间表联系起来,它就变成了笛卡尔积,数据变得复杂。

当时我想,这个解决方案,耶,你必须使用 DISTINCT 关键字。
经过尝试,结果是1 1 0.00; 2 7 0.00、6 5 .00 与之前相同。
但这个方法并不容易理解。
我想,我尝试了相反的方法。
结果是一样的。
数据仍然令人困惑。

这个笛卡尔积问题;是的,可以分两步解决。
第一步是处理贷款表数据,第二步是处理还款表数据。
这个过程,唉,不容易理解。
就这样,问题解决了。