SQL 查询优化:合并 iOS 和 Android 崩溃日志数据
SELECT log_iOS_crash.crash_uuid, COUNT(log_iOS_crash.crash_uuid), log_iMonkey_Wechat_overview.PlatformType\nFROM log_iOS_crash\nGLOBAL JOIN log_iMonkey_Wechat_overview ON log_iOS_crash.crash_uuid = log_iMonkey_Wechat_overview.CrashIdentifier\nWHERE log_iOS_crash.crash_uuid GLOBAL IN (\n SELECT DISTINCT CrashIdentifier\n FROM log_iMonkey_Wechat_overview\n WHERE Debug = 0 AND PlatformType != 0 AND CrashIdentifier != '' AND\n Ds >= toDateTime(#wechat_crash_level_time.start#)\n AND Ds <= toDateTime(#wechat_crash_level_time.end#)\n GROUP BY PlatformType, CrashIdentifier\n)\nGROUP BY log_iOS_crash.crash_uuid, log_iMonkey_Wechat_overview.PlatformType\n如何新增数据表log_android_crash,同时在log_android_crash与log_iOS_crash两个表里查询,log_android_crash与log_iOS_crash的功能完全一样,当不满足log_iOS_crash.crash_uuid = log_iMonkey_Wechat_overview.CrashIdentifier时就去log_android_crash查询满足log_android_crash.crashid = log_iMonkey_Wechat_overview.CrashIdentifier的数据内容:您可以使用UNION操作符将log_iOS_crash和log_android_crash两个表的结果合并在一起,同时进行查询。以下是修改后的查询语句:\n\nSELECT crash_uuid, COUNT(crash_uuid), PlatformType\nFROM (\n SELECT log_iOS_crash.crash_uuid, log_iMonkey_Wechat_overview.PlatformType\n FROM log_iOS_crash\n GLOBAL JOIN log_iMonkey_Wechat_overview ON log_iOS_crash.crash_uuid = log_iMonkey_Wechat_overview.CrashIdentifier\n WHERE log_iOS_crash.crash_uuid GLOBAL IN (\n SELECT DISTINCT CrashIdentifier\n FROM log_iMonkey_Wechat_overview\n WHERE Debug = 0 AND PlatformType != 0 AND CrashIdentifier != '' AND\n Ds >= toDateTime(#wechat_crash_level_time.start#)\n AND Ds <= toDateTime(#wechat_crash_level_time.end#)\n GROUP BY PlatformType, CrashIdentifier\n )\n \n UNION ALL\n \n SELECT log_android_crash.crashid AS crash_uuid, log_iMonkey_Wechat_overview.PlatformType\n FROM log_android_crash\n GLOBAL JOIN log_iMonkey_Wechat_overview ON log_android_crash.crashid = log_iMonkey_Wechat_overview.CrashIdentifier\n WHERE log_android_crash.crashid NOT IN (\n SELECT DISTINCT CrashIdentifier\n FROM log_iMonkey_Wechat_overview\n WHERE Debug = 0 AND PlatformType != 0 AND CrashIdentifier != '' AND\n Ds >= toDateTime(#wechat_crash_level_time.start#)\n AND Ds <= toDateTime(#wechat_crash_level_time.end#)\n GROUP BY PlatformType, CrashIdentifier\n )\n) AS combined_table\nGROUP BY crash_uuid, PlatformType\n\n在这个查询中,首先通过UNION ALL将log_iOS_crash和log_android_crash表的结果合并在一起。然后,根据合并后的结果进行查询,并按照crash_uuid和PlatformType进行分组。
原文地址: https://www.cveoy.top/t/topic/pJmn 著作权归作者所有。请勿转载和采集!