我有一个非唯一列auth_id的表。我需要选择具有最大条目数的auth_id值。
SimpleModule mod = new SimpleModule("MyModule");
ObjectMapper mapper = new ObjectMapper();
mod.addDeserializer(Task.class,
new CustomDeserializer(Task.class));
mapper.registerModule(mod);
以下是数据示例:
SimpleModule mod = new SimpleModule("MyModule");
ObjectMapper mapper = new ObjectMapper();
mod.addDeserializer(Task.class,
new CustomDeserializer(Task.class));
mapper.registerModule(mod);
输出:
但SQL没有看到别名表articles_num。 如何使用此别名创建此WHERE子句?
答案 0 :(得分:2)
使用limit
子句会简单得多 - 您只需根据某个字段订购查询,然后只取第一行:
SELECT auth_id, COUNT(auth_id) AS cnt
FROM articles_authors
GROUP BY auth_id
ORDER BY 2 DESC
LIMIT 1
答案 1 :(得分:1)
在内部查询中按降序排序数据,然后只取第一个:
SELECT auth_id, cnt
FROM (
SELECT auth_id, COUNT(auth_id) AS cnt
FROM articles_authors
GROUP BY auth_id
ORDER BY cnt DESC
)
LIMIT 1
答案 2 :(得分:1)
如果我理解正确,你实际上想得到一行最大值:
SELECT auth_id, count(auth_id) as cnt
FROM articles_authors
GROUP BY 1
ORDER BY 2 DESC
LIMIT 1
如果多个auth_id具有相同的最大计数,我们需要更新此SQL
答案 3 :(得分:0)
试试这个.......
select auth_id, count(auth_id) as cnt
from articles_authors
group by auth_id
order by cnt DESC
limit 1;
如果它解决了您的问题,请告诉我