繁体   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