簡體   English   中英

如何在SQL查詢的列中添加值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM