MYSQL 5 个数据库之间的函数 MAX()
MYSQL function MAX() between 5 databases
我在 PHPMYADMIN 环境中工作。我的目标是从互联网上下载数据,这些数据描述了法官、他们工作的地区、他们制作的文件、决定的数量、他们的薪水以及我上传到我的数据库中的类似内容。我创建了 5 个数据库,每个数据库代表一个特定区域(国家的一部分)。例如,现在我的目标是找到判决次数最多的法官。使用此命令:
SELECT ID_sudca
, Rozhodnutia
FROM sudy_sk.informacie
UNION
SELECT id_sudcu
, rozhodnutie
FROM nabozny1.sudca
UNION
SELECT SUDCA_ID
, POCET_ROZHODNUTI
FROM `ke-sud-neznik`.`sudca`
UNION SELECT `ID_sudca`, `Rozhodnutia`
FROM `gerboc`.`sudcovia`
UNION
SELECT `ID_SUDCU`, `Rozhodnutia`
FROM `biz`.`sudcovia`;`
我将创建一个查找table,其中所有法官都加载在judge_id(它是一个唯一的数字,象征着每个法官)和决定的数量,也就是说,好像我将所有评委及其编号放入此查找 table 中,用 表示。我现在的目标是找出来自所有地区(5 个数据库)的所有信息,例如我将考虑第一个问题,即决策数量最多/最少的法官。我想使用MAX()函数,但是有必要(至少我是这么认为的)和提到的显示一起使用。但不幸的是我做不到。你不能帮我吗?或者有什么想法?
使用你的第一个显示器,它会显示一些输出,但这个输出不正确。值的顺序并不像你看到的那样正确
select id_sudca, rozhodnutia from sudy_sk.informacie
union select id_sudcu, rozhodnutie from nabozny1.sudca
union select sudca_id, pocet_rozhodnuti from `ke-sud-neznik`.sudca
union select id_sudca, rozhodnutia from gerboc.sudcovia
union select id_sudcu, rozhodnutia from biz.sudcovia
order by rozhodnutia;
有趣的是,我尝试了相同的视图,只是更改了 table 的名称,以找出 2018 年法官薪水最高的人(按 desc 排序),这正确地向我展示了,但是当我发现听证会的次数不再了,我就开始思考为什么会这样。有什么想法吗?
select id_sudca, plat_2018 from sudy_sk.enrichment_platy union select id_sudcu, prijem_2018 from nabozny1.m_priznania union select id_priznania, prijmy_za_rok_2018 from putrovec.majetkove_priznania order by plat_2018;
我已经知道哪里出错了,这个select联合的条件不满足:
列也必须具有相似的数据类型
你可以 order by
和 limit
:
select id_sudca, rozhodnutia from sudy_sk.informacie
union select id_sudcu, rozhodnutie from nabozny1.sudca
union select sudca_id, pocet_rozhodnuti from `ke-sud-neznik`.sudca
union select id_sudca, rozhodnutia from gerboc.sudcovia
union select id_sudcu, rozhodnutia from biz.sudcovia
order by rozhodnutia desc limit 1
或者,如果相同的id_suca
可能出现在不同的表中,使用聚合
select id_sudca, sum(rozhodnutia)
from (
select id_sudca, rozhodnutia from sudy_sk.informacie
union select id_sudcu, rozhodnutie from nabozny1.sudca
union select sudca_id, pocet_rozhodnuti from ke-sud-neznik.sudca
union select id_sudca, rozhodnutia from gerboc.sudcovia
union select id_sudcu, rozhodnutia from biz.sudcovia
) t
group by id_sudca
order by sum(rozhodnutia) desc limit 1
我在 PHPMYADMIN 环境中工作。我的目标是从互联网上下载数据,这些数据描述了法官、他们工作的地区、他们制作的文件、决定的数量、他们的薪水以及我上传到我的数据库中的类似内容。我创建了 5 个数据库,每个数据库代表一个特定区域(国家的一部分)。例如,现在我的目标是找到判决次数最多的法官。使用此命令:
SELECT ID_sudca
, Rozhodnutia
FROM sudy_sk.informacie
UNION
SELECT id_sudcu
, rozhodnutie
FROM nabozny1.sudca
UNION
SELECT SUDCA_ID
, POCET_ROZHODNUTI
FROM `ke-sud-neznik`.`sudca`
UNION SELECT `ID_sudca`, `Rozhodnutia`
FROM `gerboc`.`sudcovia`
UNION
SELECT `ID_SUDCU`, `Rozhodnutia`
FROM `biz`.`sudcovia`;`
我将创建一个查找table,其中所有法官都加载在judge_id(它是一个唯一的数字,象征着每个法官)和决定的数量,也就是说,好像我将所有评委及其编号放入此查找 table 中,用 表示。我现在的目标是找出来自所有地区(5 个数据库)的所有信息,例如我将考虑第一个问题,即决策数量最多/最少的法官。我想使用MAX()函数,但是有必要(至少我是这么认为的)和提到的显示一起使用。但不幸的是我做不到。你不能帮我吗?或者有什么想法?
使用你的第一个显示器,它会显示一些输出,但这个输出不正确。值的顺序并不像你看到的那样正确
select id_sudca, rozhodnutia from sudy_sk.informacie
union select id_sudcu, rozhodnutie from nabozny1.sudca
union select sudca_id, pocet_rozhodnuti from `ke-sud-neznik`.sudca
union select id_sudca, rozhodnutia from gerboc.sudcovia
union select id_sudcu, rozhodnutia from biz.sudcovia
order by rozhodnutia;
有趣的是,我尝试了相同的视图,只是更改了 table 的名称,以找出 2018 年法官薪水最高的人(按 desc 排序),这正确地向我展示了,但是当我发现听证会的次数不再了,我就开始思考为什么会这样。有什么想法吗?
select id_sudca, plat_2018 from sudy_sk.enrichment_platy union select id_sudcu, prijem_2018 from nabozny1.m_priznania union select id_priznania, prijmy_za_rok_2018 from putrovec.majetkove_priznania order by plat_2018;
我已经知道哪里出错了,这个select联合的条件不满足:
列也必须具有相似的数据类型
你可以 order by
和 limit
:
select id_sudca, rozhodnutia from sudy_sk.informacie
union select id_sudcu, rozhodnutie from nabozny1.sudca
union select sudca_id, pocet_rozhodnuti from `ke-sud-neznik`.sudca
union select id_sudca, rozhodnutia from gerboc.sudcovia
union select id_sudcu, rozhodnutia from biz.sudcovia
order by rozhodnutia desc limit 1
或者,如果相同的id_suca
可能出现在不同的表中,使用聚合
select id_sudca, sum(rozhodnutia)
from (
select id_sudca, rozhodnutia from sudy_sk.informacie
union select id_sudcu, rozhodnutie from nabozny1.sudca
union select sudca_id, pocet_rozhodnuti from ke-sud-neznik.sudca
union select id_sudca, rozhodnutia from gerboc.sudcovia
union select id_sudcu, rozhodnutia from biz.sudcovia
) t
group by id_sudca
order by sum(rozhodnutia) desc limit 1