我有一个场景,我真的不知道如何编写SQL命令。我有一个日志表,用于保存用户和管理员的数据。用户进行插入或编辑等事务。对于编辑,它可能超过在管理员批准之前一次。管理员会批准或拒绝这些用户事务。我想知道管理员对用户的响应有多快。
让我们看一下用户A的交易。
日志表
Insert 20/01/2014 11:30:00 -->User trans 1
Approve 20/01/2014 11:40:05 -->Admin trans 1 responses to User trans 1
Edit 20/01/2014 12:00:01 -->User trans 2 -> first transaction after admin approved
Edit 20/01/2014 12:05:10 -->User trans 3
Approve 20/01/2014 12:06:45 -->Admin trans 2 responses to User trans 2 and 3
Edit 20/01/2014 13:01:56 -->User trans 4 -> first transaction after admin approved
Edit 20/01/2014 14:34:00 -->User trans 5
Approve 20/01/2013 14:43:00 -->Admin trans 3 responses to User trans 4 and 5
Edit 20/01/2014 15:55:43 -->User trans 6 -> first transaction after admin approved
Approve 20/01/2014 16:01:00 -->Admin trans 4 response to User trans 6
计算此方案的响应时间
Admin trans 1对用户trans 1的响应然后响应的时间是11:40:05-11:30:00
Admin trans 2对用户trans 2和3的响应,但我们计算在管理员批准后第一次用户交易的响应时间,然后响应的时间是12:06:45-12:00:01
Admin trans 2对用户trans 2和3的响应,但我们计算在管理员批准后第一次用户交易的响应时间,然后响应的时间是14:43:00-13:01:56
Admin trans 2对用户trans 2的响应然后响应的时间是16:01:00-15:55:43
表格结构
uuid STRING NULLABLE
描述这个领域......
引用者STRING NULLABLE
描述这个领域......
item_id INTEGER NULLABLE
描述这个领域......
member_id INTEGER NULLABLE
描述这个领域......
admin_id INTEGER NULLABLE
描述这个领域......
cate_id INTEGER NULLABLE
描述这个领域......
listing_status INTEGER NULLABLE
描述这个领域......
monitor_status INTEGER NULLABLE
描述这个领域......
注意STRING NULLABLE
描述这个领域......
txn_type STRING NULLABLE
描述这个领域......
ip_address STRING NULLABLE
描述这个领域......
电子邮件STRING NULLABLE
描述这个领域......
post_name STRING NULLABLE
描述这个领域......
user_agent STRING NULLABLE
描述这个领域......
时间戳STRING无效
描述这个领域......
http_host STRING NULLABLE
描述这个领域......
键入STRING NULLABLE
描述这个领域......
ua_name STRING NULLABLE
描述这个领域......
ua_os STRING NULLABLE
描述这个领域......
ua_patch STRING NULLABLE
描述这个领域......
ua_os_major STRING NULLABLE
描述这个领域......
ua_os_minor STRING NULLABLE
描述这个领域......
ua_os_name STRING NULLABLE
描述这个领域......
ua_build STRING NULLABLE
描述这个领域......
ua_device STRING NULLABLE
描述这个领域......
ua_major STRING NULLABLE
描述这个领域......
ua_minor STRING NULLABLE
描述这个领域......
log_source STRING NULLABLE
描述这个领域......
timestamp_int INTEGER NULLABLE
描述这个领域......
geoip RECORD NULLABLE
描述这个领域......
geoip.ip STRING NULLABLE
描述这个领域......
geoip.country_code2 STRING NULLABLE
描述这个领域......
geoip.country_code3 STRING NULLABLE
描述这个领域......
geoip.country_name STRING NULLABLE
描述这个领域......
geoip.continent_code STRING NULLABLE
描述这个领域......
geoip.region_name STRING NULLABLE
描述这个领域......
geoip.city_name STRING NULLABLE
描述这个领域......
geoip.latitude FLOAT NULLABLE
描述这个领域......
geoip.longitude FLOAT NULLABLE
描述这个领域......
geoip.timezone STRING NULLABLE
描述这个领域......
geoip.real_region_name STRING NULLABLE
描述这个领域......
请指导
感谢。
答案 0 :(得分:1)
如果您可以将“批准”与其批准的“编辑”匹配,那么您应该能够自行加入您的表格以将这些加入到单行中。批准和编辑在同一行后,您可以计算差异以查找批准延迟。
像这样的东西(用你用来匹配审批日志行的任何内容替换approve.approve_id = edit.edit_id到它所关联的第一个编辑日志行):
SELECT approve.timestamp - edit.timestamp as delay
FROM
[table] AS approve
JOIN [table] as edit
ON approve.approve_id = edit.edit_id