MySQL@currant的等价物是什么:=@currank+;MS SQL中的1?
这是我尝试将以下脚本转换为MS SQL脚本的主要MySQL脚本。我不知道是什么意思MySQL@currant的等价物是什么:=@currank+;MS SQL中的1?,mysql,sql,sql-server,Mysql,Sql,Sql Server,这是我尝试将以下脚本转换为MS SQL脚本的主要MySQL脚本。我不知道是什么意思 SELECT (SELECT COALESCE(transaction_price, 0) FROM (SELECT COALESCE(transaction_price, 0) AS TRANSACTION_PRICE, COALESCE(actual_size,
SELECT
(SELECT
COALESCE(transaction_price, 0)
FROM
(SELECT
COALESCE(transaction_price, 0) AS TRANSACTION_PRICE, COALESCE(actual_size, 0) AS ACTUAL_SIZE, @currank = @currank + 1 AS rank
FROM
dw_property_detail p, (SELECT @currank:=0) r
WHERE
land_id = 2 AND transaction_price IS NOT NULL AND flat_type = 'Studio'
ORDER BY transaction_price DESC) x
WHERE
x.rank = 1) AS TRAN_S,
(SELECT
COALESCE(per_ft_s, 0)
FROM
(SELECT
COALESCE(transaction_price / actual_size, 0) AS PER_FT_S, @currank:=@currank + 1 AS rank
FROM
dw_property_detail p, (SELECT @currank:=0) r
WHERE
land_id = 2 AND transaction_price IS NOT NULL AND flat_type = 'Studio'
ORDER BY COALESCE(transaction_price / actual_size, 0) DESC) x
WHERE
x.rank = 1) AS PER_FT_S
什么是@currank:=@currank+1
和选择@currank:=0
的等价物 行号(窗口/分析功能-MySQL目前不支持的功能)
将其作为附加列添加到SELECT子句中。为此,您现在不需要查询的ORDER BY(但如果您想要有序的结果,请保留它)
这个查询应该做什么?您可以分享一些示例数据和查询产生的结果吗?好的,我将更新MySQL查询。请看,我迷路了,你能帮我拿一下吗。我不明白p检查添加链接底部的示例你能简化我的脚本吗?哦,它只返回2列交易和每英尺,但你的返回是3列交易价格、实际价格,rankIt只是子查询部分,而不是整个查询
row_number() over (order by transaction_price desc)
SELECT COALESCE(transaction_price, 0) AS TRANSACTION_PRICE
,COALESCE(actual_size, 0) AS ACTUAL_SIZE
,row_number () over (order by transaction_price DESC) AS rank
FROM dw_property_detail p
WHERE land_id = 2
AND flat_type = 'Studio'
AND transaction_price IS NOT NULL
ORDER BY transaction_price DESC