繁体   English   中英

修改列和行中的值 (PSQL)

[英]Modify values within a column and row (PSQL)

我收到此查询的以下错误:[22P02] 错误:数字类型的输入语法无效:“。”

select 
date,
row_number () over () as RN,
case when (row_number() over ()) ='8' then '.' else (success/trials) end as "After_1M"
from trials
groupy by date;

是否有另一种方法表明应该调整 ROWxCOLUMN 组合中的某个值?

那么你的描述肯定有很多不足之处。 但是您的查询只需要稍作修改即可实际运行。 首先是“按日期分组”。 我会假设这只是一个错字。 但是没有聚合 function 的组通常不会做任何事情——这就是其中之一。 但我相信您试图按日期计算行数。 如果是这样,您需要 row_number function 中的 partition by 和 order by 子句。 另一个问题是表达式。 表达式中的每个条目都必须返回相同的数据类型,但以防万一。 THEN 条件返回字符 (.) 而 ELSE 返回一个数字(成功/试验),它必须定义 2 个数字列才有效。 那么哪些需要改变呢? 我会假设后者。 鉴于此,我们最终得到:

select date
    , row_number() over(partition by date order by trl_date) rn
    , case when (row_number() over(partition by date order by trl_date)) = 8
           then '.' 
           else (success/trials)::text
      end as  "After_1M"
 from trials;

注意:日期是一个很差的日期是一个很差的列名。 它是一个保留字,也是一种数据类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM