这是我在这里的第一篇文章,因为大多数时候我已经找到了合适的解决方案:)
但是这一次似乎没有任何帮助。
我试图从一些我只有只读访问权限的 mysql 数据库中迁移信息。
我的问题类似于这个:
Group by 没有给我最新的组
我还需要从一些表中获取最新信息,但是我的表有 >300k 条目,因此检查“时间属性值”是否是与子查询中的相同(如第一个答案中建议的那样)会太慢(一旦我做了“... WHERE EXISTS ...”并且服务器挂断了)。
除此之外,我几乎无法在单个属性中找到重要信息(例如时间),而且从来没有一个主键。
到目前为止,我通过加入包含最新“时间属性条目”和一些主键的子查询来完成第二个答案中建议的操作,但是在使用多个连接和联合结果后,这让我陷入了巨大的混乱。
因此,我更喜欢使用像这里这样的语句:
Select entry with maximum value of column after grouping
但是当我尝试它并寻找一个好的候选人作为“时间属性”时,我注意到这个查询给了我两个不同的结果(更多 = 39721,更少 = 37870)
SELECT COUNT(MATNR) AS MORE
FROM(
SELECT DISTINCT
LAB_MTKNR AS MATNR,
LAB_STG AS FACH,
LAB_STGNR AS STUDIENGANG
FROM
FKT_LAB
) AS TEMP1
SELECT COUNT(MATNR) AS LESS
FROM(
SELECT
LAB_MTKNR AS MATNR,
LAB_STG AS FACH,
LAB_STGNR AS STUDIENGANG,
LAB_PDATUM
FROM
FKT_LAB
GROUP BY
LAB_MTKNR,
LAB_STG,
LAB_STGNR
HAVING LAB_PDATUM = MAX(LAB_PDATUM)
)AS TEMP2
尽管两者都应用于同一个表并在相同条目上使用“GROUP BY”/“SELECT DISTINCT”。
有任何想法吗?
如果没有任何帮助,我不得不回到我的混乱中,我将使用字符串变量作为占位符来整理它,但是我失去了在一个查询中我有多少子查询、连接和联合的概述......有多少临时表将服务器能应付吗?