SQL Tips

 

[SQL Server] 1%(1/100)の確率で当たり(くじ)を作成しよう。イベント(キャンペーン)用。

確率で当たりを出すイベント(キャンペーン)が色々なサイトでやっていますが、
その処理はどのようにするか説明したいと思います。

まず、「1~100」間の数字をランダムで発生するSQLを作成します。

SELECT CONVERT(int, (RAND()*100))+1

このまま実行してみてください。
その結果を見た方が理解するのが早いと思います。
このシンプルなSQLを利用して1%(1/100)の確率でイベント(キャンペーン)をする時に使うことができます。

例えば、0.1%(1/1000)の確率にしたい場合は下記のように作成します。

SELECT CONVERT(int, (RAND()*1000))+1

100になっていた部分を1000に変えるだけで確率を変更できます。

それでは1%(1/100)確率で当たる処理をするSQLを作成してみましょう。

IF (1 = (CONVERT(int, (RAND()*100))+1))
BEGIN
SELECT N'当たり'
END
ELSE
BEGIN
SELECT N'はずれ'
END

当たりの確率が6%(6/100)にするとSQLは下記のように作成します。

IF (6 >= (CONVERT(int, (RAND()*100))+1))
BEGIN
SELECT N'当たり'
END
ELSE
BEGIN
SELECT N'はずれ'
END

シンプルに作成してみました。
簡単でしょう?
このエントリーをはてなブックマークに追加
2016-08-16 12:34:05   364

コメント

[SQL Server] 暗号化、復号化 / ENCRYPTBYPASSPHRASE / DECRYPTBYPASSPHRASE

-.日付:2014-02-28   カテゴリ : -   閲覧数:5266

[SQL Server] SSDT for Visual Studio 2017 offline(オフライン)installer

-.日付:2017-12-26   カテゴリ : -   閲覧数:152

[SQL Server] リンクサーバーのリストを取得する方法 - sp_linkedservers

-.日付:2017-01-16   カテゴリ : -   閲覧数:407

[SQL Server] ガチャ(GACHA)システムを作ろう!

-.日付:2016-08-18   カテゴリ : -   閲覧数:388

Copyright © 2015 INNOYA.COM All rights reserved. RSS