我正在尝试创建一个表,该表给出了tech_support列中No/Yes的百分比。这个查询为我提供了原始数据,但是如何计算一列中值的百分比呢?来自查询的结果表在下面的屏幕快照中。我正在使用Postgres/PGadmin4 4。
select c.customer_id, age, l.state, s.tech_support
from customer as c
join location as l
on c.location_id = l.location_id
join services as s
on c.customer_id = s.customer_id
where age &
根据
CASE表达式不计算任何不需要用于确定结果的子表达式。例如,这是避免零除法失败的一种可能方法:
选择。当x为x <> 0时,y/x > 1.5,否则为假尾;
为什么下面的表达式返回一个ERROR: division by zero? --显然是计算了其他部分:
SELECT CASE WHEN SUM(0) = 0 THEN 42 ELSE 43 / 0 END
而
SELECT CASE WHEN SUM(0) = 0 THEN 42 ELSE 43 END
返回42。
编辑:所以上面的例子失败了,因为Postgres计算了已经处于计划阶段的不变值(43/0)
我使用的是Postgres 9.4。我有一张这样的桌子:
org_id | character varying(3) | not null
drug_code | character varying(15) | not null
actual_cost | double precision | not null
processing_date | date | not null
我想像这样运行一个查询:
SELECT org_id, SUM(actual_cost) A
我有一个events表,它包含各种创建、完成和失败事件。每个事件都有一个ID (表中的主键),但也有一个"entity_id",它将多个事件链接在一起。
例如,当创建并完成请求时,我们将有两个事件:
已经创建了请求#42
第42号请求已经完成
在上面的示例中,42是请求的entity_id。
CREATE TABLE IF NOT EXISTS events (
id SERIAL PRIMARY KEY,
entity_id INTEGER NOT NULL,
type VARCHAR(255) NOT NULL,
occurr
我使用相同的表有两个查询:总计,我需要评估结果的百分比。(Postgres 9.4)
SELECT COUNT(*) FROM total
SELECT COUNT(*) FROM total WHERE field1 = False
示例:
总计数无筛选器返回100行
使用field1 = False返回10行。
我需要得到10%,也就是满足特定条件的百分比。100/10在SQL中计算这个条件的最好方法是什么?
SELECT * FROM (
SELECT COUNT(*) FROM total /
SELECT COUNT(*) FROM total WHERE field
我有Project,其中有许多Task对象是由项目的id链接的,每个Task都有一个状态。我想做一个汇总项目中所有任务状态的聚合查询。我做了一个查询 SELECT p.name, t.status, count (t.id) AS size FROM public.projects AS p
JOIN public.tasks AS t ON p.id=t.project_id
GROUP BY p.name, t.status 但结果在一行中返回每个项目的每个状态。 name status size
----- ------- -----
t1 foo 1
我在postgres有张桌子:
| PersonID |Description | Value |
|----------|-------------|-------|
| 1 | Name | Jane |
| 1 | Last name | Doe |
| 1 | Age | 23 |
| 1 | Country | USA |
| 2 | Name | Steve |
| 2 | Last name | Jobs |
|
我有一个邮件分类表,我试图查询返回百分比。我正在做一个基于order_no、县和zip_code的独特记录组。
SELECT, COUNT(*) as TotalMailed, COUNT(*) (WHERE Returned = 1) as ReturnedMailed, Order_No, Zip_Code,County
FROM MailLedger
GROUP BY Order_No, Zip_Code, County
我正在获取每个记录分组的正确计数,但是我需要获得已返回到true的分组记录子集的计数。
我正在运行SQL Server,因此我确实可以使用OVER和分区,但是,我也想知
假设我有一张表,如下所示 col_a col_b col_c
one a 1.0
one b 2.0
two a 3.0
two b 4.0 我想把它变成 a b
one 1.0 2.0
two 3.0 4.0 我知道它可以在Postgres中使用crosstab或者在Pandas中使用df.unstack或df.pivot来完成 它可以在ClickHouse中完成吗?
我正在尝试将带有复杂查询的子查询从Oracle转换为Postgres。下面是子查询和它给出的错误。我知道“在团队中”也在Postgres。我遗漏了什么?我甚至将Listagg更改为String_agg,但得到了相同的错误。
Select a, Listagg(b, ', ') WITHIN GROUP (ORDER BY b) "a"
from table;
错误:
错误:...a,Listagg(b,‘)在GRO.
*错误*
错误:在SQL状态内或附近的语法错误: 42601字符: 5290
我是新来的postgres,并提出了以下问题。如果有些城市的经济价格比商业价格便宜,我需要回答这个问题。目前,我的要求如下:
with cte_money as (
select
ad.city ->> 'ru' as city,
fare_conditions,
amount
from ticket_flights tf
join flights as f using(flight_id)
join airports_data as ad on f.arrival_airp
我创建了一个堆叠的条形图,并希望计算每个布尔类型列中存在的真值的数量。所以我把它们放在A,B,C这3个类别中。我的预期输出是这样的: Status X Y Z
A 5 2 1
B 0 3 4
C 2 4 1 我使用这个Postgres查询: Select X, Y , Z, status, created_at
from table abc
group by X, Y, Z, status, user_id, created_at
having X or Y or Z = true 问题是Data Studio也在计算错误的值,因此
我最喜欢的postgres聚合之一是"list",根据我在网上找到的少量证据,它归功于“idocs中的Chris Rohlfs”。
CREATE FUNCTION comma_cat (text, text)
RETURNS text AS
'SELECT CASE
WHEN $2 is null or $2 = '''' THEN $1
WHEN $1 is null or $1 = '''' THEN $2
ELSE $1 || '', ''