我有以下疑问:
SELECT
distinct(date(survey_results.created_at)),
json_build_object(
'high',
ROUND(
COUNT(*) FILTER (WHERE ( scores#>>'{medic,categories,motivation}' in('high', 'medium'))) OVER(order by date(survey_results.created_at) ) * 1.0 /
(
CASE (COUNT(*) FILTER (WHERE (scores#>>'{medic,categories,motivation}' in('high','medium','low'))) OVER(order by date(survey_results.created_at)))
WHEN 0.0 THEN 1.0
ELSE (COUNT(*) FILTER (WHERE (scores#>>'{medic,categories,motivation}' in('high','medium','low'))) OVER(order by date(survey_results.created_at)))
END)* 100, 2 ) ) AS childcare FROM survey_results GROUP BY date, scores ORDER BY date asc;
问题是使用不同(date(survey_results.created_at))
。就地查询返回错误:
无法识别json类型的等号操作符
下面是db fiddle,它表明了这个问题:
https://www.db-fiddle.com/f/vUBjUyKDUNLWzySHKCKcXA/1
我怎样才能解决这个问题?
迁移到使用JSONB,您就不会有这个问题。
这是几年前Postgres 9.4发布时遵循的标准建议。下面是Ruby on Rails社区中的一个线程,它描述了迁移到JSONB作为解决方案。
以下是线程:https://github.com/rails/rails/issues/17706
问题在于使用distinct(date(survey\u results.created\u at))
不是。问题在于使用DISTINCT,因为它不是一个函数。它始终适用于结果的所有列distinct(a),b与distinct a,(b)或distinct a,b相同。正因为如此,distinct尝试比较第二列的相同值,第二列是json类型的,不能与
=
如果您只需要“latest”值,可以使用Postgres的distinct on()
运算符:
SELECT distinct on (date(survey_results.created_at))
date(survey_results.created_at) as date,
json_build_object('high',
ROUND(
COUNT(*) FILTER (WHERE ( scores#>>'{medic,categories,motivation}' in('high', 'medium'))) OVER(order by date(survey_results.created_at) ) * 1.0 /
(
CASE (COUNT(*) FILTER (WHERE (scores#>>'{medic,categories,motivation}' in('high','medium','low'))) OVER(order by date(survey_results.created_at)))
WHEN 0.0 THEN 1.0
ELSE (COUNT(*) FILTER (WHERE (scores#>>'{medic,categories,motivation}' in('high','medium','low'))) OVER(order by date(survey_results.created_at)))
END)* 100, 2 ) ) AS childcare
FROM survey_results
GROUP BY date, scores
ORDER BY date asc;
与
order by
组合的不同on()
为ON()
部分中指定的列的后续相同值选择第一行。在这种情况下,它将返回最早的日期。如果您想要“最新”行,请将排序顺序更改为desc
https://www.db-fiddle.com/f/vUBjUyKDUNLWzySHKCKcXA/1
使用jsonb_build_object
。请注意json
之后的二进制文件的b
。
看看这张图: 我认为缺少一些设置配置,因为当我尝试创建模型时。py会这样。代码无法识别,文件与py文件不同。。。 知道我做错了什么吗? 注意:不是文件类型问题,因为可以识别另一个文件代码并且文件图标是python。
编程新手,刚刚开始使用Java。我拿不到那张票要使用字符的操作数。这与while循环有关。即使放置了正确的输入。循环不断地说,这是一个无效的输入,尽管正确的输入被放置。 输入被正确识别并转换为大写。但是同时循环不起作用。任何建议将不胜感激!
用例:用户需要能够拖动 问题是:我的代码不能抵抗来自其他来源的拖放(例如,将jpeg从IE拖到表单上会触发相同的事件)。这是因为我无法确定拖动的项目是否是Outlook对象,或者拖动的项目来自哪个源。 是否有一种变通方法,使我只能接受特定类型的拖放项?以下是我在DragDrop事件处理程序中的代码: 从Outlook拖动时DragEventArgs对象(e)的一些详细信息:
问题内容: 尝试将类类型的对象添加到 JArray时 遇到以下错误。 这是我正在使用的代码: 在运行程序时,我将其命名如下: 如何转换 _JArray(JArray) 内的 AmountModel(类) 以被系统识别为JSON对象? 非常感谢您的回答。 谢谢。 问题答案: 为了将任意非原始POCO添加到中,您必须使用以下重载之一显式序列化它: (另请注意,我已更正了循环中的结束条件。它是,导致出现
这是我正在使用的图书馆。但我需要更改java代码的样式。但是由于它是一个外部依赖项,所以文件是只读的。 这是我的Android文件结构: Android文件结构截图 这是我的build.gradle(模块:App)的依赖项块代码: code bloack的屏幕截图 在我的share.java文件中,我尝试导入CarouselPicker,这是我为alt+enter得到的结果: Alt+Enter给
当我尝试在Pandas的applymap函数中使用参数“na_action”时,我得到了以下错误: TypeError:applymap()获得意外的关键字参数“na_action” 例子: 类型错误。回溯(最近一次呼叫最后一次) 在1个显示器中显示(df\U复制) 2个df。iloc[0,0]=pd。NA ---- TypeError:applymap()获得意外的关键字参数“na_action