此postgresql查询 SELECT array_to_json(array_agg(row_to_json(c))) FROM contacts c; 返回json类型的单个列。下面是pgadmin中的工作查询... ? 我想从我的Java服务器执行同样的查询,它使用Jackson。我应该将响应读入哪种类型?我尝试将响应作为PGobject变量接收,但在查询之后,我发现该变量为空。 我还尝试接收字符串形式的响应,但这会抛出错误: java.lang.ClassCastException: class org.postgresql.util.PGobject cannot be ca
我有一个带有亲子关系表的PostgreSQL数据库(9.2)。我有一个查询,它查找具有多个父节点的节点。
以下查询工作并返回正确的结果:
SELECT node,parents FROM
(
SELECT nr.child AS node, COUNT(nr.parent) AS parents
FROM node_relation nr
GROUP BY nr.child
) AS count WHERE parents > 1;
结果集:
node | parents
--------+---------
n21174 | 2
n8635 |
我正在尝试创建一个函数来替代我查询中的postgresql sum函数。
查询它本身,它看起来像这样
SELECT .... sum(tax) as tax ... from (SUBQUERY) as bar group by id;
我想用我自己的函数替换这个sum函数,它通过税收计算改变最终值。
所以我创建了如下的pgsql函数:
DECLARE
v double precision;
BEGIN
IF val > 256 THEN
v := 256;
ELSE
v := val;
END IF;
RETURN (v*0.21)/0.79;
EN
我有一个在MySQL上运行良好的查询,现在不在PostgreSQL上了--这是一个查询:
SELECT "users".*
FROM "users"
JOIN "favorites" ON "favorites"."user_id" = "users"."id"
WHERE users.id NOT IN (2)
AND favorites.favoritable_id IN (1)
GROUP BY favorites.user_id
OR
我有一个在SQLite中正确工作的查询。但它在PostgreSQL中的给出错误。
SELECT decks.id, decks.name, count(cards.id)
from decks
JOIN cards ON decks.id = cards.did
GROUP BY cards.did
上面的查询在postgresql中出现错误。
错误:列" decks.id“必须出现在GROUP子句中,或用于聚合函数行1:从decks联接中选择decks.id、decks.name、count(cards.id)。
select
case
when daftar ='sd' then kouta
end as a,
case
when daftar = 'smp' then kouta
end as b,
case
when daftar = 'sma' then kouta
end as c
from
ajaran
GROUP BY
tahun
结果误差
错误:列"ajaran.daftar“必须出现在GROUP子句中,或者在聚合函数行
我正在试着加入一个领域而不是一个群。我可以像在中描述的那样在MySQL中处理它。然而,我现在迁移到了PostgreSQL,建议的解决方案在PostgreSQL 9.6中不起作用。根据,可以像所描述的或那样使用StringAgg。我相信,在较新版本的PostgreSQL中,我不能执行以下代码:
from django.db.models.sql.aggregates import Aggregate as SQLAggregate
这会抛出错误:
from django.db.models.sql.aggregates import Aggregate as SQLAggregate
Modul
理解postgresql中查询别名的工作原理有点困难。我有以下几点:
SELECT DISTINCT robber.robberid,
nickname,
Count(accomplices.robberid) AS count1
FROM robber
INNER JOIN accomplices
ON accomplices.robberid = robber.robberid
GROUP BY robber.robberid,
robber.nicknam
我有一个疑问:
SELECT
CASE
WHEN test.formula_type = 2
THEN EXP(SUM(LN(calculated_value)))
ELSE 1
END AS result
FROM (
SELECT
0 AS calculated_value,
1 AS formula_type
GROUP BY formula_type
) AS test
GROUP BY formula_type
当我运行它时,我得到:
psql:__scribble.sql:16:错误:不能取零的对数
如果执行第4行,这将是有意义的,因为
我有张桌子
ID Name Status Mode
1 Test1 Processed Mode A
2 Test2 In-Flight Mode B
3 Test3 Processed Mode B
4 Test4 In-Flight Mode A
5 Test5 Processed Mode A
请帮助构建将返回的查询。
Mode Processed In-Flight
Mode A 2 1
Mode B 1 1
得到了答案,但现在我很困惑如何在连接到PostgreSQL的sprin
例如,我有一个包含数据的表:
截图
这个表名为" table “。
我有一个SQL查询:
select
kind,
count(kind)
from table
where region = 'eng'
group by kind
我得到的结果是:
问题:我如何编写一个查询,返回类字段中的所有值(或可以在组中的任何其他字段)?即使这个值是0。对于上面的例子,所需的结果是
在查询中通过使用组是强制性的。
我使用postgresql 10。
在PostgreSQL中运行以下查询时:
SELECT group_,
COUNT(*),
MIN(time)
FROM TRIP
WHERE time >= NOW()
GROUP BY group_
ORDER BY time ASC
我错了:-
ERROR: column "trip.time" must appear in the GROUP BY clause or be used in an aggregate function
我不明白。min不是一个聚合函数吗?此查询运行在MySql上。
以下查询在MySQL中工作:
SELECT
f.created_date as time_sec
,sum(f.value) as value
, date_format( f.created_date , '%a') as metric
FROM ck_view_fills as f
GROUP BY date_format(f.created_date, '%a' )
我已经将我的数据库迁移到PostgreSQL,现在我正在将我的查询转换为匹配。我天真的转换如下:
SELECT
f.created_date as time_sec
,su
Oracle SQL中有一种技术可用于简化聚合查询:
在特定列上聚合,但使用选择列表中的简单计算列从另一列获取信息。
--Oracle
--For a given country, what city has the highest population? (where the country has more than one city)
--Include the city name as a column.
select
country,
count(*),
max(population),
any_value(city) keep (dense_rank
光环,首先,我要说谢谢你之前帮我解决了我的问题。我真的是一个使用Postgresql的新手。
现在我有了新问题,我使用select语句,如下所示:
select * from company where id=10;
当我在pg_stat_statements中看到查询时,我得到的查询是这样的:select * from company where id=?;
结果中缺少id的值,如何才能在不丢失值的情况下获得完整的查询??
谢谢您:)
我有一个关于PostgreSQL中的计数函数的问题,所以如果我有这个查询
SELECT dept_id, COUNT(*) AS total
FROM employees
WHERE salary > 50000
GROUP BY dept_id;
我想检查一下总数是否> 2,我试着写:
Where Total > 2
或
Where Count (*) > 2
但这是错误的,有人能帮我吗?谢谢
SQL不允许在其他列中使用别名(s,d),因此,我的查询是:
SELECT
employe,
sum(salary + bonus) AS s,
sum(debt) AS d,
(sum(salary + bonus) - sum(debt)) AS total
FROM test_table
GROUP BY employe;
此查询包含聚合sum(salary + bonus)两次。
PostgreSQL将对其进行优化(在第二个聚合中使用来自第一个聚合的结果)还是为第二个聚合再次进行求和?
在我的PostgreSQL数据库中,我有一个users表,它包含以下列:
id - integer
email - string
blocked - boolean
现在我想让sql查询返回以下结果:
total: blocked: unblocked
total count of users count of blocked users count of users that are not blocked
我如何在PostgreSQL中做到这一点?