0

我有这张桌子:

TICKETID | PRICE | NUMBER

所以对于每一个ticketid,玩家都可以为每一个数字付出一个代价ticketid

因此,如果玩家想为数字 22,23 和 24 支付 1$、3$ 和 4$ 为ticketid25,那么表格将如下所示:

TICKETID | PRICE | NUMBER 
25       |   1   |  22 
25       |   3   |  23 
25       |   4   |  24

我想随机选择一张 TOTAL PRICE >50 的票,让它获得奖品。

我还希望随机化是公平的,并且在进行抽奖时,每张票只有 1 个幻影率。如果我不使用 DISTINCT 或 GROUPBY,那么ticketid10 个号码的抽奖机会将比 2 个号码的彩票更多。

我试过这个,但它不工作:

SELECT DISTINCT(ticketid),SUM(price) FROM table 
     WHERE SUM(price)>50 GROUP BY ticketid

我收到错误消息

GROUP BY 函数的无效使用

有人可以帮忙吗?

4

1 回答 1

1

您想要的是“HAVING”子句,该子句在 group by 聚合处理后应用于任何可能的候选记录。应用 THEN 并在最终结果集中包含(或不包含)。

SELECT 
      ticketid,
      SUM(price) TotalPrice
   FROM 
      table 
   group by
      TicketID
   HAVING
      sum(price) > 50
于 2012-12-06T13:34:38.513 回答