【发布时间】:2011-08-23 07:34:17
【问题描述】:
以下语句更新名为“test”的表中的列。
UPDATE test AS t
INNER JOIN test AS q ON(
q.ptime = t.ptime
)
SET t.slope_Percentile =(
(
SELECT
count(*)
FROM
(
SELECT
*
FROM
test
)AS t1
WHERE
t1.slope < t.slope
)* 100 /(
SELECT
count(*)
FROM
(
SELECT
*
FROM
test
) AS tz
)
);
我不想更新列,而是希望收到一个 SELECT 语句,该语句给出每行的读数(如果它是 UPDATE 语句,则会更新)。
有关表格性质和代码目标的更多信息(如果需要)在此处: Efficient assignment of percentile/rank in MYSQL
【问题讨论】:
-
您应该先修复查询...您以
q的身份加入表中,但您从未在查询中使用它。你正在做select count(*) from (select * from test)而只是select count(*) from test会做。 -
这实际上在 MYSQL 中不起作用。它说““您不能在 FROM 子句中指定目标表 'test' 进行更新”