【问题标题】:Find min(records) and max(records)查找 min(records) 和 max(records)
【发布时间】:2021-05-04 06:24:09
【问题描述】:

我有两个表,分别是 t1 和 t2。 t1 有 M 条记录,t2 有 N 条记录。 这两个表都不包含任何重复值。如果我加入这两个表,那么 M 和 N 的 min(records) 和 max(records) 是多少?

**几天前我在一次采访中被问到这个问题,我无法回答这个问题。请帮忙!

谢谢。

【问题讨论】:

  • 显示join 语句。这取决于你如何加入他们。
  • 面试官只是给了我一个提示,如果我进行交叉连接,那么结果将是 MxN 记录。我不确定这对这里有什么帮助!
  • MxN 显然是最大值。
  • 嘿!为了能够理解这个问题的答案是什么,我建议查看 SQL 中每种不同的连接类型是什么,以及它们如何组合不同表的集合。我们可以为您提供准确的答案,而且很可能有人会,但鉴于您说您自己无法得出答案,您可能会在思考这个问题的同时通过阅读不同的连接类型来学习有趣的东西。跨度>
  • @lahwran - 感谢您的建议 :)

标签: sql


【解决方案1】:

最少记录是0,因为无论您使用什么join 条件,都可能评估为真。

假设您在“唯一”ID 上进行匹配(我认为这是您试图通过指出没有重复项来表达的意思),最大记录为 n + m,因为您可能在表之间使用 full join,没有匹配的行。

对于内连接,最大值为 least(n, m)。一个表中的所有行都可能与另一个表中的行匹配——但不匹配的行不会被计算在内。

【讨论】:

  • 谢谢。现在,我明白他为什么给我暗示了。
  • 你能解释一下min部分吗?我有点困惑。
  • @DexCode 。 . .如果没有匹配项,则内连接不返回任何行。
猜你喜欢
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 2021-12-14
  • 1970-01-01
  • 2014-01-28
相关资源
最近更新 更多