SQL里查某个字段最大对应的另一个字段
时间: 2024-03-13 08:17:07 浏览: 19
可以使用以下 SQL 语句来查询某个字段最大对应的另一个字段:
```
SELECT field1, MAX(field2)
FROM table
GROUP BY field1
ORDER BY field1;
```
其中,`field1` 和 `field2` 分别代表你要查询的两个字段,`table` 是你要查询的表名。这条 SQL 语句会按照 `field1` 分组,然后找到每个组中 `field2` 最大的那个值,并将结果按照 `field1` 排序输出。
相关问题
两个数据库已有,数据库1里有表VIP,表VIP里有openID和phone两个字段 数据库2里有表miniapp和member 其中表miniapp里有openID和mid 表member里有mid和mobile 需要实现从表VIP里openID所有的值挨个去表miniapp里查查openID是否有相同值,如果有的话,就根据openID的值找对应的mid, 再根据mid去表member里查mobile值是否为空,如果为空,就把VIP里phone的值写入mobile里。
好的,你可以使用以下 SQL 语句来实现这个功能:
```
UPDATE member m
SET m.mobile = v.phone
FROM VIP v
JOIN miniapp ma
ON ma.openID = v.openID
JOIN member m
ON m.mid = ma.mid
WHERE v.openID = <openID值>
AND m.mobile IS NULL;
```
你需要将 `<openID值>` 替换为 VIP 表中的每个 openID 值,然后逐一执行这个 SQL 语句。这个 SQL 语句会先将 VIP 表中每个 openID 对应的 mid 找出来,然后再根据 mid 在 member 表中查找对应的手机号码(如果手机号码为空的话),最后将 VIP 表中的手机号码写入 member 表中。
需要注意的是,如果 VIP 表和 miniapp 表中的 openID 字段类型不同,需要先进行类型转换。此外,如果 VIP 表中的 openID 值比较多,可以考虑编写脚本来自动化执行这个 SQL 语句。
Oracle 我用Logminer数据挖掘查询 redo log 分析数据v$logmnr_contents,clob长度大于4000,就查不到该clob字段修改日志。blob和clob字段超过4000归档日志里查不到,这种字段日志记录在哪里呢?或者是有什么归档日志参数没设置好?
当CLOB和BLOB的长度大于4000时,Oracle将它们分割成多个子块进行存储。这些子块是分散存储在多个归档日志文件中的。默认情况下,LogMiner只会查找当前在线日志和当前归档日志中的数据。如果你想要查找旧的归档日志中的数据,你需要将归档日志设置为“可用于查询”。可以使用以下命令将所有归档日志设置为可用于查询:
```
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_N = ENABLE;
```
其中,N是你的归档日志目标的序号。如果你设置了多个归档日志目标,则需要分别对它们进行设置。然后,你需要重新启动LogMiner,以便它可以查找新的可用于查询的归档日志。