[英]How to add values to columns on an SQL query?
我有一個不太清楚的作業問題。 我被要求進行查詢,這將在同一行上導致其他值,據我所知,這意味着添加更多列。 我不知道該怎么做,不幸的是,這里對現有問題的回答似乎並不能回答我的問題,也許我錯過了一些東西(我是SQL noob)。
這是問題:
編寫一個查詢,該查詢返回以下數據:每個日期一行,且每行最差,其中每一行都有所有變體和控件的印象和點擊。 變體被標識為vrow,其中variant_id不為零,Control被標識為行,其中variant_id為0。
例如,對於以下數據,查詢將返回:
2018-01-01,2,32323,212,95262,354
2018-01-01,5,76675,5454,675675,5454
2018-01-02,2,0,0,7834,99
2018-01-02,5,0,0,9664,144
表格: https : //i.ibb.co/kVZTyt5/ob.jpg
到目前為止,我已經嘗試過了:
SELECT date, abtest_id, impressions, clicks FROM table1 WHERE variant_id IS NOT NULL
GROUP BY date, abtest_id;
結果如下:
2018-01-01 2 5454 11
2018-01-01 5 76675 5454
2018-01-02 2 7834 99
2018-01-02 5 776 12
我不知道如何在同一行的結果中增加更多的點擊次數和展示次數,再看問題中的示例,我不知道其中的某些值如何以及為什么存在。 任何幫助將不勝感激。
謝謝!
在所有DBMS中,您都可以使用INSERT或UPDATE。
插入以添加新值更新以更改舊值
一個簡單的Insert語法是:插入tableName(column1,column2,...)值(value1,value2,...)
一個簡單的更新語法是:
Update TableName
Set Column1=value1, Column2=value2
您可以在上述簡單代碼的末尾使用
通過其他表插入語法是:插入到tableName(column1,column2,...)中,選擇t.column1,t.column2 ...從tablename2
一個簡單的更新語法是:
Update TableName
Set Column1=value1, Column2=value2
Where colmn1= myValuse
對我來說,您不需要在表中添加列或行。 您需要選擇數據,並在某些字段上求和。
我會在MySQL的這些方面做一些事情(僅按模式關閉整個分組):
SELECT t.*,
SUM(CASE
WHEN variant_id != 0 THEN impressions
ELSE 0
END) v_impressions,
SUM(CASE
WHEN variant_id != 0 THEN clicks
ELSE 0
END) v_clicks
FROM `tests` as t
GROUP BY date, abtest_id;
盡管可能存在更簡單的語法。
這將從variant_id = 0的行中選擇數據,對variable_id!= 0的印象和點擊求和,並按日期和abtest_id進行分組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.