【发布时间】:2021-05-24 03:53:45
【问题描述】:
如果用户的手机支持 sqlite 3.25.0 或更高版本,则以下查询运行良好。否则,您可以猜到,查询不起作用。在不使用row_number()函数的情况下如何转换代码?
SELECT *
FROM
(
SELECT
ROW_NUMBER() OVER (PARTITION BY recipe_name) AS rn,
rt.*
FROM
SyncRecipeIngredientTable sr
JOIN RecipeIngredientTable ri ON ri.recipe_ingredient_id = sr.recipe_ingredient_id
JOIN RecipeTable rt ON rt.recipe_id = sr.recipe_id
WHERE ri.recipe_item_name in ("patates", "soğan", "su")
GROUP by rt.recipe_id
HAVING COUNT(*) >= 3
)
WHERE rn = 1
【问题讨论】:
-
ROW_NUMBER() 函数不包含 ORDER BY 子句,因此在结果中您想要的具有相同 recipe_name 的行中的哪一行并不明显。发布查询结果和您的预期结果的示例数据。
-
还有,哪个表包含
recipe_name列? -
@forpas 我编辑了问题请看一下
-
请说明您希望查询执行的操作。
-
@GordonLinoff 不得显示具有相同 recipe_name 的重复记录
标签: android sql sqlite flutter