我目前正在学习 SQL 并遇到了一个问题。
这个问题与我的许多用例有关。我在 en-uk、en-au、es-latam、es-spain 有语言环境,我想将它们简单地组合为 EN 或 ES 以便随着时间的推移进行报告。
以下是询问如何计算番茄页面浏览量和胡萝卜页面浏览量的示例。
我希望一旦我弄清楚如何做到这一点,我可以将其应用于语言环境。
可以在此电子表格中的 H:L 列中看到预期的输出:https ://docs.google.com/spreadsheets/d/1CNE__ikiHEQHedH0UiSPmRI1s47e7qEH_aJJVtYSSzU/edit?usp=sharing
在开始这段旅程时不熟悉 CASE,但我需要进一步汇总/汇总表中已经存在的数据,以便我可以构建图表。
谁能指出任何优化领域?此外,一个侧面请求:AND url.website like '%tomato%' 或 '%carrot%' (我如何使它成为 OR?)
最后,谁能帮我弄清楚如何使用 NOT CONTAIN in AND url.website 不包含这些单词中的任何一个不区分大小写 (?i) 土豆、蘑菇、芹菜
我来自电子表格背景并且是高级用户,但似乎我很难将这些知识转移到 SQL 中。
非常感谢!如果您有任何问题,请告诉我,
经过多次论坛搜索,我知道我需要在此处插入一个子查询才能获得预期的表。我的目标是随着时间的推移在图表中绘制这些网站页面访问的计数。
[最近编辑]
在右侧显示带有计数编号的 URL
SELECT
url.website
report.timestamp
count(url.website) as count
FROM
datatable.report
WHERE url.website like '%carrot%' OR url.website like '%tomato%'
Group by url.website
错误代码:在 Group By 中找不到 report.timestamp - 但如果我添加它,我会在一列中得到微秒,以及这些微秒的出现次数。
主要要点是在选择中添加report.timestamp,以便我可以按聚合月份绘制,但是一旦我这样做,计数值就不会相加。
[过去的编辑 2]
SELECT
url.website
COUNT(url.website) as Count
(CASE WHEN report.web.url like '%carrot%' then 'carrot website'
WHEN report.web.url like '%tomato%' then 'tomato website'
ELSE 'other website'
END)
FROM datatable.report
WHERE (product.tag = 12345)
AND url.website NOT IN ('Potato','Mushroom','Celery')
AND url.website like '%tomato%'
GROUP BY url.website
[过去的编辑 3]
SELECT
(CASE WHEN url.website like '%carrot%' THEN 'carrot'
WHEN url.website like '%tomato%' THEN 'tomato'
ELSE 'other'
END)
url.website
COUNT(carrot) as carrotwebsite
COUNT(fundamental) As tomatowebsite
*thinking that maybe I needed to case/group them first, then show the
count
displays.
请参阅公共电子表格中的 H:L 列:https ://docs.google.com/spreadsheets/d/1CNE__ikiHEQHedH0UiSPmRI1s47e7qEH_aJJVtYSSzU/edit?usp=sharing