我的SQL表“offer”包含用户为产品提供的优惠(product_ID,customer_ID,offer)。
在我的管理页面中,我想列出至少存在一个优惠的产品,并显示现有的优惠。
例如,
PRODUCT #324 Total offers: 42
PRODUCT #99 Total offers: 1
etc.
我的猜测是结合一个
SELECT DISTINCT product_ID FROM offers...
在第二个查询中,SELECT COUNT(*) FROM offers WHERE product_ID=...
这是实现这一目标的最有效方法,还是有办法在单个查询中实现?
答案 0 :(得分:2)
您可以在一个查询中执行此操作,该查询将通过product_id
进行分组来获取计数:
SELECT product_ID, COUNT(*)
FROM offers
GROUP BY product_ID
答案 1 :(得分:1)
正如bluefeet已经回答的那样,你可以通过使用group by在单个查询中实现它。 (group by demo)
另一件值得一提的是订单,
select
product_id as id,
count(*) as totals
from
t
group by product_id
order by totals;
如果要对总点击数进行排序,或者如果要按product_id等进行排序。