SELECT检查最大行的列

时间:2018-07-06 16:16:33

标签: sql query-builder dql

这是我的第一个选择:

Set<Object>

结果:

private  void iterHelper(Set<Map.Entry<String, ?>> entrySet , LinkedHashMap<String, Object> result) {
    for (Map.Entry<String, ?> entry : entrySet) {
        String tmpkey = entry.getKey();

        if (tmpkey.startsWith("KEY")) {
            result.put(entry.getKey(), entry.getValue());
        }
    }
}

user_id的最大值:

LinkedHashMap<String, Object> result = new LinkedHashMap<>();
Set<Map.Entry<String, ?>> entrySet = ...;
iterHelper(entrySet, result);

我需要在['25 -34','65 +']中过滤年龄

我必须在结尾处

SELECT 
    user.id, analytic_youtube_demographic.age, 
    analytic_youtube_demographic.percent  
FROM 
    `user`  
INNER JOIN 
    analytic ON analytic.user_id = user.id  
INNER JOIN 
    analytic_youtube_demographic ON analytic_youtube_demographic.analytic_id = analytic.id

非常感谢您的帮助。

尝试使用--------------------------- | id | Age | Percent | |-------------------------- | 1 |13-17| 19,6 | | 1 |18-24| 38.4 | | 1 |25-34| 22.5 | | 1 |35-44| 11.5 | | 1 |45-54| 5.3 | | 1 |55-64| 1.6 | | 1 |65+ | 1.2 | | 2 |13-17| 10 | | 2 |18-24| 10 | | 2 |25-34| 25 | | 2 |35-44| 5 | | 2 |45-54| 25 | | 2 |55-64| 5 | | 1 |65+ | 20 | --------------------------- 。但是我也不知道该如何过滤年龄。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用b函数来确定每个用户数据集中的最大百分比值,然后使用一个简单的rank()子句来获取那些既是最高排名又属于一个条目的条目由于您无法在WHERE子句中使用像rank()这样的窗口函数,因此这是一个包含子查询或CTE的两步过程。这样的事情应该做到:

WHERE