我有这张桌子:
TICKETID | PRICE | NUMBER
因此,对于每个ticketid
,玩家可以为ticketid
上的每个号码支付价格。
因此,如果玩家想为ticketid
25的数字22,23和24支付1 $,3 $和4 $,那么该表将如下所示:
TICKETID | PRICE | NUMBER
25 | 1 | 22
25 | 3 | 23
25 | 4 | 24
我想选择总票价> 50的随机票,以便获得奖品。
我也希望随机化是公平的,并且在进行抽奖时,每张票只有1个幻影率。如果我不使用DISTINCT或GROUPBY,那么包含10个数字的ticketid
将比具有2个数字的票证有更多机会被绘制。
我尝试了这个,但它不起作用:
SELECT DISTINCT(ticketid),SUM(price) FROM table
WHERE SUM(price)>50 GROUP BY ticketid
我收到错误消息
无效使用GROUP BY功能
有人可以帮忙吗?
答案 0 :(得分:1)
您想要的是“HAVING”子句,该子句应用于处理聚合后的任何可能的候选记录。已经应用了THEN,并且在最终结果集中包括(或不包括)。
SELECT
ticketid,
SUM(price) TotalPrice
FROM
table
group by
TicketID
HAVING
sum(price) > 50