本文介绍了按行最大值(n列)-优雅的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个如下所示的表

我正在尝试下面的方法,但是它肯定不是优雅而有效的。

I was trying the below but it certainly isn't elegant and efficient. Is this the only way to do?

我正在寻找同时在 Bigquery和Postgresql

SELECT
CASE
    WHEN date_1 >= date_2 AND date_1 >= date_3 AND date_1 >= date_4 AND date_1 >= date_5 AND date_1 >= date_6 THEN date_1
    WHEN date_2 >= date_1 AND date_2 >= date_3 AND date_2 >= date_4 AND date_2 >= date_5 AND date_2 >= date_6 end AS max_date
from table_1

我希望我的输出如下所示

And I expect my output to be like as shown below

推荐答案

这应该很好并且可行在两种BigQuery / PGSQL环境中:

This should be good and work in both BigQuery/PGSQL environments:

select
   subject_id,
   hadm_id,
   icustay_id,
   greatest(
      coalesce(date_1, '1900/01/01'),
      coalesce(date_2, '1900/01/01'),
      coalesce(date_3, '1900/01/01')
      coalesce(date_4, '1900/01/01'),
      coalesce(date_5, '1900/01/01'),
      coalesce(date_6, '1900/01/01')
   ) as max_date
from `dataset.table`

希望它会有所帮助。

这篇关于按行最大值(n列)-优雅的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 16:47