按列分组并在另一列中获取最大字符串长度的行

rshar

我在Postgres 11中有下表。

table1

id          col1    col2                        col3                        col4                        
NCT00000374 Drug    olanzapine                  olanzapine                  olanzapine                  
NCT00000390 Drug    imipramine hydrochloride    imipramine hydrochloride    imipramine hydrochloride    
NCT00000390 Drug    imipramine hydrochloride    imipramine hydrochloride    imipramine                  
NCT00000412 Drug    placebo calcitriol          placebo calcitriol          calcitriol                  

我想获取最大长度值为per的行(id, col1, col2, col3)

所需的输出是:

id          col1    col2                        col3                        col4                        
NCT00000374 Drug    olanzapine                  olanzapine                  olanzapine                  
NCT00000390 Drug    imipramine hydrochloride    imipramine hydrochloride    imipramine hydrochloride    
NCT00000412 Drug    placebo calcitriol          placebo calcitriol          calcitriol                  

到目前为止,我尝试了以下查询,但均未成功:

select * from table1
where length(col4) = max(length(col4))
group by id, col1, col2, col3
order by id
欧文·布兰德斯特

一个案例DISTINCT ON

SELECT DISTINCT ON (id, col1, col2, col3)
       *
FROM   table1
ORDER  BY id, col1, col2, col3, length(col4) DESC NULLS LAST;

最简单,每行几行,(id, col1, col2, col3)通常也最快。详细说明:

对于大表和每组许多行,有(很多)更快的技术:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据框按列分组,并在另一列中压缩字符串

如果包含字符串,则按一列分组并获取 R 中另一列的最大值

如何在数据框中按列查找最大字符串长度

如何在PostgreSQL中获取一列字符串的字符串长度

根据另一列中的值获取一列中的子字符串

从表中获取与一列中的值匹配并且在另一列中以逗号分隔的字符串存在子字符串的行

Mutate()基于另一列中不同长度的字符串向量的新列

如果当前列在SQL中具有“零长度字符串”,则从另一列获取行值

将字符串列按熊猫中的另一列分组

如何使用数据框在Spark中查找列的最大字符串长度?

根据一列进行分组,并在另一列中获取总和值

如何比较按另一列分组的列并在 R 的新列中给出输出?

使用差异对列进行分组并在熊猫中按另一列对另一列进行排序

根据另一列获取列值,并在pandas dataframe中获取字符串列表

从另一列替换匹配的行字符串

在列中查找最大字符串值

比较两列,一列按浮点数,另一列按字符串以获取匹配值

如何按用户ID对表进行分组并为另一列获取最大值?

使用R中的dplyr查找其中一列字符串位于另一列中的行

当一列中的数字在另一列中的字符串内时,删除表行

从另一列中删除字符串元素

添加另一列的字符串长度和累加列?

根据熊猫数据框中的另一列获取子字符串

替换从pandas的另一列中获取的字符串

根据另一列的条件汇总一列的多个连续行中的字符串数据

按一列以逗号分隔的字符串分组,但分组应忽略字符串的特定顺序

大字符串在Java中分成最大长度的行

如何按某些列分组并在现有的另一列中显示分组值

创建一个基于R中的另一列对从一列中提取的字符串文本进行分组的列