首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从表中的项创建列

从表中的项创建列
EN

Stack Overflow用户
提问于 2019-03-05 15:22:10
回答 2查看 63关注 0票数 1

我很难搞清楚如何在一栏里写一篇文章

event_name where match_id = 1

并将该条目应用于由visit_idpattern_id分区的新列中的每个记录。

我现在拥有的是:

代码语言:javascript
复制
| Visit_ID           | event_label  | product_list_name | event_name | match_id | pattern_id | SKU    |
|--------------------|--------------|-------------------|------------|----------|------------|--------|
| 154892456600012589 | California   | banner-101-s      | Search     | 1        | 1          | (null) |
| 154892456600012589 | sendData     | banner-101-s      | Impression | 2        | 1          | 10572  |
| 154892456600012589 | sendData     | banner-101-s      | Impression | 3        | 1          | 10573  |
| 154892456600012589 | sendData     | banner-101-s      | Impression | 4        | 1          | 10574  |
| 154892456600012589 | sendData     | banner-101-s      | Impression | 5        | 1          | 47589  |
| 154892456600012589 | sendData     | banner-101-s      | Impression | 6        | 1          | 84756  |
| 256493157982168884 | Nevada       | banner-109-s      | Search     | 1        | 2          | (null) |
| 256493157982168884 | sendData     | banner-109-s      | Impression | 2        | 2          | 58798  |
| 256493157982168884 | sendData     | banner-109-s      | Impression | 3        | 2          | 58799  |
| 256493157982168884 | sendData     | banner-109-s      | Impression | 4        | 2          | 10546  |
| 256493157982168884 | banner-109-s | banner-109-s      | Click      | 5        | 2          | 58798  |

我试着得到以下信息:

代码语言:javascript
复制
| Search     | Product_List_Name | SKU   | Impressions | Clicks |
|------------|-------------------|-------|-------------|--------|
| California | banner-101-s      | 10572 | 1           | 0      |
| California | banner-101-s      | 10573 | 1           | 0      |
| California | banner-101-s      | 10574 | 1           | 0      |
| California | banner-101-s      | 47589 | 1           | 0      |
| California | banner-101-s      | 84756 | 1           | 0      |
| Nevada     | banner-109-s      | 58798 | 1           | 1      |
| Nevada     | banner-109-s      | 58799 | 1           | 0      |
| Nevada     | banner-109-s      | 10546 | 1           | 0      |

如果我没有很好地解释的话,我很抱歉!谢谢你的见解。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-05 15:43:18

这可能与您正在寻找的内容非常接近:

代码语言:javascript
复制
SELECT t2.event_label AS Search, t1.product_list_name, t1.SKU,
       COUNT(CASE WHEN t1.event_name = 'Impression' THEN 1 END) AS Impression,
       COUNT(CASE WHEN t1.event_name = 'Click' THEN 1 END) AS Click
FROM mytable AS t1
INNER JOIN mytable AS t2 ON t1.Visit_ID = t2.Visit_ID AND t2.match_id = 1
WHERE t1.match_id > 1
GROUP BY t1.Visit_ID, t1.SKU, t2.event_label, t1.product_list_name

查询使用match_id <> 1选择所有记录,每条记录都与相应的match_id = 1记录匹配。它使用条件聚合来计算每个ImpressionsSKUClicksVisit_ID数量。

票数 1
EN

Stack Overflow用户

发布于 2019-03-05 15:50:45

您的结果似乎来自这样的查询:

代码语言:javascript
复制
SELECT event_label as Search, product_list_name, SKU,
       SUM( (event_name = 'Impression')::int ) AS Impressions,
       SUM( (event_name = 'Click')::int ) AS Clicks
FROM t
WHERE SKU IS NOT NULL
GROUP BY vent_label, product_list_name, SKU;

您可能希望将pattern_id包含在GROUP BY中,但它不在结果集中,因此我不确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55006124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档