数量作为参数出现,因此我必须仅提取记录RecyclerViewItemDivider divider = new RecyclerViewItemDivider(recyclerView.getContext());
recyclerView.addItemDecoration(divider);
。我在@quantity
后尝试的内容不是那么有意义所以下面给出的是我需要实现该条件的查询。我在FROM
和使用WHERE
但都无法使用
HAVING
示例数据:
SELECT prod_id,
product,
technology,
price,
quantity
FROM tbl_product
------SUM(quantity) <= @quantity
如果@quantity = 150,则应提取前3条记录。
答案 0 :(得分:2)
你需要得到一个累积总和(基于&#34;在你的问题中提取到&#34;),这是使用窗口函数最有效地完成的。
尝试:
with cumulative as (
SELECT prod_id,
product,
technology,
price,
quantity,
sum(quantity) over (order by <order column>) as cumulative_quantity
FROM tbl_product
)
select
prod_id,
product,
technology,
price,
quantity
from cumulative where cumulative_quantity <= @quantity;
您需要提供一个订单列,以指明您希望累积总和使用的排序方式。
所以当@quantity = 150时,你的结果将是:
prod_id product technology price quantity
1 M1 ST 25.33 10
2 M2 ST 23.65 50
3 S1 ST 54.32 90
(如果您按列使用prod_id作为订单)。
答案 1 :(得分:0)
假设您想按照累计金额小于prod_id
的{{1}}排序前N条记录,那么您可以尝试以下查询:
@quantity
答案 2 :(得分:0)
根据产品,您可以找到如下
SELECT distinct prod_id,
product,
technology,
price,
FROM tbl_product
where product in (
SELECT product
FROM tbl_product
GROUP BY product
HAVING SUM(quantity) <= @quantity)