|
原帖由 askgyliu 于 2007-12-13 19:39 发表 ![]()
现 在 我 可 以 确 信 的 是 :
1) LZ的 版 本 和 我 的 版 本 最 终 结 果 是 一 样 的 , 除 了 LZ的 会 在 某 些 数 据 下 会 有 多 行 。
2) 那 最 终 结 果 呢 ? 是 在 GROUP_ID+PRE_M_ARPU_D上唯 一 吗 ? 若 是 的 话 , 那 LZ的 头 就 大 了 , 还 得 在 来 最 后 一 个 GROUP BY。
3) 我 很 是 相 信 最 终 要 的 是 在 GROUP_ID+PRE_M_ARPU_D是 唯 一 的 。 因 为 不 然 的 话 我 很 难 了 解 LZ会 怎 样 处 理 那 些 重 复 但 有 不 同 数 值 的 结 果 。
4) 再 仔 细 看 看 我 的 版 本 。 再 对 照 一 下 LZ所 要 的 业 务 逻 辑 , 再 仔 细 想 想 是 不 是 真 的 要 FULL OUTER JOIN。我 相 信 自 己 是 在 了 解 了 LZ所 想 要 的 逻 辑 之 后 才 写 这 个 SQL的 。 唯 一 的 意 外 就 是 最 终 的 行 数 会 因 为 数 值 而 不 同 。
可以确定地说:GROUP_ID+PRE_M_ARPU_D是不唯一的!
这段代码只是存储过程中的一部份,这段代码的后边的部分,就是根据这2个字段进行group by的!
下来的代码有一部分是根据GROUP_ID来回总的,有一部分是根据PRE_M_ARPU_D和GROUP_ID来汇总的!
我这边之所以这么写,是因为为后边的代码做铺垫!后边的代码执行速度回好点!
业务很复杂!赫赫! |
|