Postgres Aggregate Hstore

时间:2014-08-31 20:29:20

标签: php sql postgresql laravel eloquent

我是Postgres的新手,我正在研究现有的Laravel应用程序。条目表使用名为hstore的{​​{1}}列。这是违规查询:

data

我可以看到他们在这里做了什么,但是这段代码失败并出现错误:

$query = \DB::table('entries')
        ->where('f_id', '=', $f->id)
        ->where('s_id', '=', \Config::get('s_id'))
        ->select(\DB::raw('SUM(CAST("data"->\'total\' as decimal)) as "total"'))
        ->get();

我无法弄清楚为什么,有人能解释这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用NULLIF来处理空字符串:

'SUM(NULLIF("data"->\'total\', '')::numeric)) as "total"'

如果所有字段都为NULL,也可以使和为NULL。

答案 1 :(得分:0)

这里的问题不是实际的查询。

问题是"总计"条目为空,当转换为小数时会导致错误。