我有一个大表测试,其中 user_id 2 有 500000 条记录。所以我想以 100 条记录为一组删除这条记录,但它给出了错误。这是我的查询:
delete from test where test_id in (select test_id
from test where User_id = 2 limit 100 )
错误:元组同时更新
什么问题。我该如何解决。
我有一个大表测试,其中 user_id 2 有 500000 条记录。所以我想以 100 条记录为一组删除这条记录,但它给出了错误。这是我的查询:
delete from test where test_id in (select test_id
from test where User_id = 2 limit 100 )
错误:元组同时更新
什么问题。我该如何解决。
首先很抱歉,如果这是重复的,我对 SQL 还很陌生,所以我不确定在我的搜索中使用什么正确的术语
所以我有一个记录赛车的数据库,具有以下简化模式
race_table
==========
race_id PK
race_date timestamp
average_speed Decimal
max_speed Decimal
drivers
=======
driver_id PK
driver_name text
date_started timestamp
driver_races
============
driver_id FK
race_id FK
如果每个车手在 2/3 年内有大约 1000 场比赛
例如,我将如何查询给定日期范围内平均比赛速度的总体百分比变化(正负)
前 6 个月的百分比变化
Joe Smith - 5% increase
Andy James - 4% increase
前 12 个月的百分比变化
Joe Smith - 8% increase
Lewis May - 6% increase
更新:有关百分比变化的更多详细信息
百分比变化可以使用线性回归计算,(最小二乘拟合将是合适的),平均变化实际上是最佳拟合线上的 y 差,其中每个点都是一场比赛,x 是race_date 和 y 是那场比赛的平均速度。
Postgres 的 regr_slope 将给出与 %change 相同的线的梯度
SELECT regr_slope(r.average_speed, EXTRACT(EPOCH FROM r.race_date)) as slope
FROM race_table as r, driver_races as dr
WHERE dr.race_id = r.race_id
AND d.driver_id = 1
这给出了我想要的数字,但我现在需要针对所有用户应用,按“斜率”排序
我偶然得到了这个:
db=> select name from site;
ERROR: column "name" does not exist
LINE 1: select name from site;
^
db=> select site.name from site;
name
---------------
(1,mysitename)
(1 row)
第二个查询返回一个包含整行的元组。使用 postgres 9.0.1。
编辑:按请求定义站点。我并不重要,这个怪癖适用于任何桌子。
db=> \d site
Table "public.site"
Column | Type | Modifiers
--------+---------+---------------------------------------------------
id | integer | not null default nextval('site_id_seq'::regclass)
title | text | not null