我的问题是我正在修改现有查询,我不能在查询中使用 count(*)。我必须使用内部连接子查询。
我需要“转换”到我的内部连接是这样的(这有效):
SELECT count(distinct t1.id)
FROM table1 t1
WHERE t1.column1 = 'value1' AND
t2.column2 = 'value2' AND
EXISTS(select 1 from table2 t2 where t2.id = t1.id)
我的全局查询如下所示:
SELECT [many many column]
FROM table2 t2
INNER JOIN [...]
LEFT OUTER JOIN [...]
--[I NEED MY COUNT HERE, see below for example]
WHERE [some conditions are true]
ORDER BY [some column]
我发现对我有帮助的是这样的:
SELECT [many many column], myJoin.Count
FROM table2 t2
INNER JOIN (
SELECT tt2.id, count(distinct tt2.id) as Count
FROM table2 tt2
WHERE EXISTS (SELECT 1 FROM table1 tt1 where tt1.id = tt2.id)
GROUP BY tt2.id) myJoin
on t2.id = myJoin.id;
看看我想要实现什么?我需要计算 ids,加入 2 个表,但我不能在我的主查询中计算,我不可能复制粘贴所有的“分组依据”条件......我是在 sql 服务器上。
如果我找到答案,我会回来并发布。感谢您对此的任何建议/技巧。