- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SQL 大师,我在练习 SQL 技能时试图解决这个具有挑战性的问题,但是我被卡住了,如果有人能提供帮助,我将不胜感激。
注册被定义为事件表中标记为“sign_up_success”的事件。对于每个城市(“A”和“B”)和一周中的每一天,确定 2016 年第一周在注册日期后 10 小时内完成旅行的注册百分比。
表名:trips
Column Name Datatype
id integer
client_id integer (Foreign keyed to
events.rider_id)
driver_id integer
city_id Integer (Foreign keyed to
cities.city_id)
client_rating integer
driver_rating integer
request_at Timestamp with timezone
predicted_eta Integer
actual_eta Integer
status Enum(‘completed’,
‘cancelled_by_driver’, ‘cancelled_by_client’)
表名:城市
Column Name Datatype
city_id integer
city_name string
表名:事件
Column Name Datatype
device_id integer
rider_id integer
city_id integer
event_name Enum(‘sign_up_success’, ‘attempted_sign_up’,
‘sign_up_failure’)
_ts Timestamp with timezone
在这条线上尝试了一些东西,但是它离预期的答案还差得很远:
SELECT *
FROM trips AS trips
LEFT JOIN cities AS cities ON trips.city_id = cities.city_id
LEFT JOIN events AS events ON events.client_id = events.rider_id
WHERE events.event_name = "sign_up_success"
AND Convert(datetime, trips.request_at') <= Convert(datetime, '2016-01-
07' )
AND DATEDIFF(d, Convert(datetime, events._ts), Convert(datetime,
trips.request_at)) < 7 days
AND events.status = "completed
期望的结果如下所示:
Monday A x%
Monday B y%
Tuesday A z%
Tuesday A p%
有人可以帮忙吗
最佳答案
首先,我假设 "trips"."city_id"是强制性的,所以在连接城市时我使用 INNER JOIN 而不是 LEFT JOIN。
然后,要指定字符串常量,您需要使用单引号。查询中还有一些其他变化——希望您自己会注意到它们。
此外,查询可能会失败,因为我实际上并没有运行它(很遗憾,您没有提供样板 SQL)。
带有“周”第一个参数的 date_trunc() 函数根据您当前的时区设置(请参阅 https://www.postgresql.org/docs/current/static/functions-datetime.html)将您的时间戳转换为“相应周的第一天,时间 00:00:00”。
我对该值使用了 GROUP BY,分组的第二“层”是城市 ID。
另外,我在 count() 旁边使用了“filter (where ...)”——它只允许计算所需的行数。
最后,我使用 CTE 改进了查询的结构和可读性。
如果失败请告诉我,我会修复它。一般来说,这种方法必须有效。
with data as (
select
left(date_trunc('week', t.request_at)::text, 10) as period,
c.city_id,
count(distinct t.id) as trips_count,
count(*) filter (
where
e.event_name = 'sign_up_success'
and e._ts < t.request_at + interval '10 hour'
) as successes_count
from trips as t
join cities as c on t.city_id = c.city_id
left join events as e on t.client_id = e.rider_id and e._ts
where
t.request_at between '2016-01-01' and '2016-01-08'
group by 1, 2
)
select
*,
round(100 * success_count::numeric / trips_count, 2)::text || '%' as ratio_percent
from data
order by period, city_id
;
关于sql - Postgres : Unable to determine percent of successful events ending in a completed trip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44722609/
好吧,这可能是我做过的一件非常简单的事情(有那么几天),但我一辈子都想不通。 长话短说,在我的 main.scss 中: .test{ width: calc(100% - 50px); }
我只是想验证我对这些参数及其关系的理解,如果我错了请通知我。 mapreduce.reduce.shuffle.input.buffer.percent 告诉分配给 reducer 的整个洗牌阶段的内
我想在Excel中将0.95等数字显示为95;将它们格式化为 % 显示 95%;但我想去掉百分号。我可以在“自定义格式”中为此做些什么吗?注意:我不想做像单元格内容 * 100 等这样的事情,而是使用
我使用类似 margin-top: calc(100% - $value) 的意图是计算将涉及 100% 的高度来计算上边距。但实际上是按宽度的100%计算。 有人知道如何根据百分比高度而不是宽度进行
如何用单词“百分比”替换符号“%”。 我的原始字符串是“内部 (%) 外部 (%)”。 字符串应为“内部(百分比)外部(百分比)” 使用正则表达式,我如何替换这个符号? 提前致谢。 阿图尔 最佳答案
有没有办法使用百分比执行顶级(Take)linq查询? T-SQL 应该是: SELECT TOP 20 PERCENT ... 但 LINQ 似乎只想要一个 int。 看来我得先数数,然后再取。有什
想象一下,我正在根据评分对行进行排序,并且我只希望根据公开的行总数(不时发生变化,因此应该在途中计算)确定一定数量。这是显示每一行的子查询,以及我尝试使用但没有成功的令人毛骨悚然的技巧: SELECT
这个问题在这里已经有了答案: String formatting: % vs. .format vs. f-string literal (16 个答案) 关闭7年前。 在 Python 中似乎有两种
为什么从Hadoop 1.x开始删除了io.sort.record.percent属性? 最佳答案 它在2.x中存在,但唯一的区别是它的名称已更改: mapreduce.task.io.sort.mb
我正在尝试通过 MVC 在 EF 代码优先属性上使用这些: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx 具体来说: [DisplayFo
我想编写一个 jQuery 插件来为 background-size 属性设置动画,从 cover 到 100% 反之亦然,但我不知道如何将 cover 设为百分比值,是否有可能获得已调整大小的背景图
我是网页设计的新手,所以这可能是一个愚蠢的问题,但请耐心等待。 我想创建一个水平居中的 div,其高度始终从底部延伸至 175 像素 - 所以基本上是 100% 减去 175 像素的高度。 div 中
我到处搜索这个,但我无法解决我的问题。 我正在使用本地 API 获取一些数据,在该 API 中,通配符是百分号 %。 URL 是这样的:urlReq = 'http://myApiURL?ID=som
我是 Hadoop 和 Hive 的新手。 我正在使用 Hadoop 2.6.4(我从互联网上获得的二进制文件)和 Hive 2.0.1(我从互联网上获得的二进制文件)。我可以在配置单元中创建数据库和
我有一个 data.table喜欢: library(data.table) widgets <- data.table(serial_no=1:100,
这是我使用一小部分数据 graphs 制作的 2 个图表 正如你所看到的,一个子集上升到 6%,另一个子集上升到 2%,在我的原始数据上,Y 比例上升到 13% 和 3.5%,因为我想并排显示它们更大
我有以下 SQL 查询,它返回 92.967013425802 结果,我需要将其格式化为 93% 并添加百分号。我尝试将总和更改为四舍五入,但收到错误 The function 'round' is
我正在制作一系列条形图,其中百分比值位于每个条形上方。我想将其四舍五入到小数点后 0 位,但它默认为小数点后 1 位。这是使用 mtcars 的示例。 library(ggplot2) library
我必须使用 pointFormat 属性来格式化工具提示。这个问题是我想不出一种方法来使用 {point.y} (0.0324123) 并将其格式化为 precent (3.24)。 正如我上面所说,
我有一个包含调用详细记录的 mysql 数据库。在这个特定的查询中,我想搜索所有调用以了解调用断开的原因,并返回断开连接原因的列表以及每个原因发生的次数。 示例结果集如下所示: causeCode
我是一名优秀的程序员,十分优秀!