我有一個名爲SQL鴻溝數據
表如下表:活動
userid appid type
1 a imp
2 a imp
2 a click
3 a imp
4 a imp
4 a click
5 b imp
5 b click
我試圖計算出每個appid
的點擊率。在這種情況下,我們將點擊率定義爲(點擊次數)/(展示次數)。我寫了下面的SQL:
SELECT appid, type, count(*) from activity group by appid, type
,並得到了以下結果:
輸出:
appid type count(*)
a click 2
a imp 4
b click 1
b imp 1
下一步是做逐行師。最終,我想實現以下目標:
目標:
appid click-through
a .5 # 2/4 = .5
b 1 # 1/1 = 1
這是如何實現的呢?理想情況下,我希望這可以在一個查詢中完成,那有可能嗎?
對於這個例子,它工作正常,但現在想象你有沒有印象的點擊,你想刪除它們,因爲這很可能是錯誤。這個查詢會忽略它。 – zipp 2017-03-31 17:59:42
@zipp當然可以調整條件來處理額外的複雜性,例如,可以將整個事件包裝在一個「CASE」表達式中,該表達式用於檢查以確保展示次數高於點擊次數。 – 2017-03-31 20:13:45
我打開了一個單獨的問題,以防萬一您面臨挑戰: http:// stackoverflow。COM /問題/ 43148974/MySQL的,有條件自加盟 – zipp 2017-03-31 20:14:53