假設我在SQL中有兩個表。現在我想獲得表1的計數和表2的計數的商。我該怎麼做?如何獲得SQL中的多列數
在短:
(# of rows in table 1)/(# of rows in table 2)
編輯: 這是我的嘗試:
SELECT COUNT(t1.a)/COUNT(t2.a)
FROM table1 t1, table2 t2
假設我在SQL中有兩個表。現在我想獲得表1的計數和表2的計數的商。我該怎麼做?如何獲得SQL中的多列數
在短:
(# of rows in table 1)/(# of rows in table 2)
編輯: 這是我的嘗試:
SELECT COUNT(t1.a)/COUNT(t2.a)
FROM table1 t1, table2 t2
with
Ctable1 as
(select count(*) as num1 from table1),
Ctable2 as
(select count(*) as num2 from table2)
select num1/num2 as quotient
from Ctable1,Ctable2
記住:
試試這個:。
SELECT COUNT(table1.column) as 'Table 1 Count'
,COUNT(table2.column) as 'Table 2 Count'
,COUNT(table1.column)/COUNT(table2.column) as 'Quotient'
FROM table1, table2
這不會返回正確的答案。最大的問題是兩個表之間的CROSS JOIN操作。由COUNT()聚合處理的行數是相同的。此外,計數表達式中的NULL值不會包含在計數中。 – spencer7593
這裏有一種方法來獲得結果:
SELECT c1.cnt/c2.cnt AS q
FROM (SELECT COUNT(1) AS cnt
FROM table1
) c1
CROSS
JOIN (SELECT COUNT(1) AS cnt
FROM table2
) c2
另一種方式來獲得同樣的結果:
SELECT (SELECT COUNT(1) FROM table1)/(SELECT COUNT(1) FROM table2) AS q
我寧願先查詢,如果我還需要從表中作爲單獨的結果集返回的列的計數,例如:
SELECT c1.cnt AS table1_count
, c2.cnt AS table2_count
, c1.cnt/c2.cnt AS q
FROM ...
這不會返回正確的答案。最大的問題是兩個表之間的CROSS JOIN操作,由COUNT()聚合處理的行數是相同的。 – spencer7593