f1=spark.sql(“选择 user_id,产品 ID,操作作为 FAV 从 ubh 其中操作 == 'fav' 分组按user_id,产品 ID,FAV”)b1=spark.sql(“选择用户 ID,产品 ID,操作作为 BUY,从 ubh 购买,其中操作 == '购买' 按用户 ID,产品 ID,BUY)分组”)c1=spark.sgl(“选择用户 ID,产品 ID,操作作为 CART 从 ubh 哪里操作 == 按用户 ID 分组的”购物车“组,product id,CART“)c1.createOrReplaceTempView('c12)f1.createOrReplaceTempView('f12!b1.createOrReplaceTempView('b12)bc1=spark.sgl(”select b12.user_id,b12.product id,b12.买,C12。推车,f12。来自 b12 joinc12 的 FAV 在 b12.user id = c12.user id 和 b12.product id = c12.product id left join f12 on b12.user id = f12.user id and b12.product id =f12.product id”)更简洁的sql语句
时间: 2024-02-16 18:03:19 浏览: 157
UltraFM:从Chrome浏览器播放fav_radio(radioultra.ru)
可以使用下面的SQL语句来完成同样的任务:
```
SELECT
user_id,
product_id,
SUM(CASE WHEN action = 'fav' THEN 1 ELSE 0 END) AS FAV,
SUM(CASE WHEN action = 'buy' THEN 1 ELSE 0 END) AS BUY,
SUM(CASE WHEN action = 'cart' THEN 1 ELSE 0 END) AS CART
FROM ubh
GROUP BY user_id, product_id
```
这个SQL语句将用户行为表ubh按照用户ID和产品ID进行分组,并使用SUM和CASE WHEN语句计算每个用户和产品的收藏、购买和加入购物车行为数量。这个语句更简洁、易于理解,并且避免了创建临时表和连接表的步骤。
阅读全文