我正在尝试从两个表中获取这些值,并加入成员ID。在带有积分值的表中,每个成员的每笔销售都有总计行。我需要与成员表中其行相关联的成员积分,按值降序排序。这是我当前的查询,除非成员具有两个相同的条目,否则它将返回唯一值。
id <- c("a", "a", "a", "b", "b", "b")
content <- c("A", "B", "A", "B", "C", "B")
testdf <- data.frame(id, content, stringsAsFactors=FALSE)
library(runner)
library(dplyr)
testdf %>%
group_by(id) %>%
mutate(
result = runner(x = content,
f = function(x) paste(x, collapse = " "),
type = "character")) # specify output type - by default numeric
答案 0 :(得分:1)
简单的JOIN
和GROUP BY
可能会满足您的要求:
SELECT
m.id,
m.fname,
m.lname,
COALESCE(MAX(s.points_total), 0) AS points_total
FROM member_member AS m
LEFT JOIN sale_sale AS s
ON m.id = s.member_id
AND s.site_id = 1
WHERE m.fname != "Sales"
GROUP BY m.id
ORDER BY points_total DESC;
编辑:将LEFT JOIN
设为COALESCE(points_total, 0)
,以允许没有销售总额的成员显示在结果中。如果您不希望这样做,可以将LEFT JOIN
更改为INNER JOIN
并取消使用COALESCE
函数。