Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有没有一种使用sql获取最佳记录的方法_Mysql_Sql_Database - Fatal编程技术网

Mysql 有没有一种使用sql获取最佳记录的方法

Mysql 有没有一种使用sql获取最佳记录的方法,mysql,sql,database,Mysql,Sql,Database,在一个拥有数百万条记录的数据库中,是否有可能获取最好的记录(即具有最多填充列的行) 是否可以将这两条记录合并为一条?例如 SEQ_ID | PERSON_ID | GENDER | DOB | COUNTRY 1 | A000001 | Male | 01-01-1970 | Indonesia 在您的示例中,您可以使用聚合: select MIN(SEQ_ID), PERSON_ID, MAX(GENDER), MAX(DOB), MAX(COUNTRY) f

在一个拥有数百万条记录的数据库中,是否有可能获取最好的记录(即具有最多填充列的行)

是否可以将这两条记录合并为一条?例如

SEQ_ID | PERSON_ID | GENDER | DOB        | COUNTRY
1      |  A000001  |  Male  | 01-01-1970 | Indonesia

在您的示例中,您可以使用聚合:

select MIN(SEQ_ID), PERSON_ID, MAX(GENDER), MAX(DOB), MAX(COUNTRY)
from t
group by PERSON_ID;

目前尚不清楚这是否会对您的数据起到普遍作用,但这确实回答了您提出的问题。如果这不起作用,您应该提出一个新问题,提供更合适的数据和您想要使用的逻辑解释。

我们不清楚您的问题定义。请告诉我们你到底想要实现什么,你尝试了什么?你的第一个问题对我来说不够清楚。第二个答案是肯定的。您可以尝试的最简单的方法是将表本身左键联接。选择T1.ID,T1.PERSON\u ID,NVL(T1.GENDER,T2.GENDER)作为性别,NVL(T1.DOB,T2.DOB)作为DOB,NVL(T1.COUNTRY,T2.COUNTRY)作为国家/地区,从表名称T1左键联接表名称T2。PERSON\u ID=T2.PERSON\u ID和T1.SEQ\ID T2.SEQ\u ID
select MIN(SEQ_ID), PERSON_ID, MAX(GENDER), MAX(DOB), MAX(COUNTRY)
from t
group by PERSON_ID;