gpt4 book ai didi

mysql - 比较表内数据

转载 作者:行者123 更新时间:2023-11-30 01:34:32 24 4
gpt4 key购买 nike

这是一个相当复杂的问题,所以我将其分开:

挑战

我有一个具有以下结构的表:

  • id(整数,唯一)
  • 公司 (INT) -> 链接到另一个包含公司的表
  • 成本类型(INT)
  • 值(整数)

我需要通过计算每家公司所有成本类型的值(value)差异来比较公司。以一家公司为引用;其他公司应尽可能匹配引用公司所有成本类型的值。然后需要根据结果与引用公司的匹配程度对结果进行排序。

事实

  • 我们可以假设所有公司都有相同的成本类型
  • 费用类型事先未知:它们可能会在不通知的情况下进行更改
  • 两家公司之间成本类型值的差异应计算如下:ABS([引用公司成本类型值] - [其他公司成本类型值]) ^ 2

假设

我能想到比较这些数据的唯一方法是:

  • 获取所有不同的成本类型
  • 获取引用公司这些成本类型的值
  • 以某种方式对每个公司的所有成本类型进行分组,并使用非常长(自动生成)的查询来将所有成本类型值与引用公司的值进行比较。

问题

  • 这可能吗?我不知道如何在不加入一家公司的所有行的情况下同时比较多行,这将导致巨大的查询并且需要很长时间。
  • 有更有效的方法吗?也许对于我不知道的这些类型的问题有一个标准的解决方案? (并且在 Google 上找不到)
  • 是否有其他数据库系统(SQL、NoSQL,我对一切都持开放态度)可以比 MySQL(我现在正在使用)更有效地处理此类问题?

感谢您阅读整个问题;我知道它很长,但很难解释。几天来我一直在应对这个挑战,但似乎无法掌控一切。提前致谢!

最佳答案

建立一个包含以下列的引用表

id (autogen), compare_from_company_id, compare_to_company_id, value

字段解释。

  1. id - autogen 字段
  2. 在您的等式中引用公司
  3. 您的方程式中的其他公司
  4. ABS 值(value)([引用公司成本类型值] - [其他公司成本类型值])^ 2

然后,当主表上的主记录发生更改时,您可以根据事件填充此表。然后您可以通过其他查询轻松引用这个新表。

关于mysql - 比较表内数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17082709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com