Sql 如何在两张相同的表格上计数
我试图在两个相同的表上使用count来获得某种关系 这是我的问题Sql 如何在两张相同的表格上计数,sql,postgresql,count,Sql,Postgresql,Count,我试图在两个相同的表上使用count来获得某种关系 这是我的问题 SELECT b.id, count(a) count(b.id) from checkins_small a, checkins_small b WHERE a.id =22 AND a.city = b.city AND a.date = b.date GROUP BY b.id ; 这是基于签入数据,我想找到所有在同一城市和同一日期签入的用户。但是这个查询总是给我一个masive号码。counta.id和countb.
SELECT b.id, count(a) count(b.id) from
checkins_small a, checkins_small b
WHERE a.id =22 AND a.city = b.city AND a.date = b.date GROUP BY b.id ;
这是基于签入数据,我想找到所有在同一城市和同一日期签入的用户。但是这个查询总是给我一个masive号码。counta.id和countb.id的结果总是相同的我如何解决这个问题
SELECT a.id, count(a.id) from checkins_small a group by a.id order by count(a.id) DESC LIMIT 10;
此查询将给出以下结果:
userid checkin times
22 ; 1783
267 ; 1607
177 ; 1508
130 ; 1477
205 ; 1456
2 ; 1368
323 ; 1151
111 ; 1092
337 ; 940
53 ; 896
现在,我想找到所有与用户22在同一日期、同一城市登记的人,以及这些人的登记时间。所以结果是这样的
user_id times
你能分享一下表格的结构,一些样本数据,以及你试图得到的这个样本的结果吗?你不能选择和分组你正在计算的同一列。如果要计算b.id,则不应选择它,也不应按它分组。您想解决什么问题?如果您的id是主键,那么a.id=22的counta将始终为1。选择b.id时,按b.id分组-您的countb.id将始终为1 chekins_小表格包含签入者、签入日期、城市。您能否共享表格的结构、一些示例数据以及您尝试获取的此示例的结果?您不能按正在计数的同一列进行选择和分组。如果要计算b.id,则不应选择它,也不应按它分组。您想解决什么问题?如果您的id是主键,那么a.id=22的counta将始终为1。选择b.id时,按b.id分组-您的countb.id将始终为1 chekins_小表格包含登记人、登记日期、城市。
SELECT
COUNT(b.ID) as CT,
b.date
FROM
checkins_small a
INNER JOIN
checkins_small b on b.city = a.city and b.date = a.date
WHERE
a.ID = 22
GROUP BY
b.date
SELECT b.id AS user_id,
COUNT(b.id) AS times
FROM (SELECT DISTINCT
id,
city,
date
FROM checkins_small
WHERE id = 22) a,
checkins_small b
WHERE a.city = b.city
AND a.date = b.date
AND a.id <> b.id
GROUP BY b.id;