Oracle SQL Developer中的计数不准确

时间:2015-12-01 15:57:52

标签: sql oracle

我正在尝试从多个表中生成所有记录的计数。例如:

SELECT *
FROM DB.TABLEA A
    INNER JOIN DB.TABLEB B on A.A_KEY=B.B_KEY
    INNER JOIN DB.TABLEC C on A.A_KEY=C.C_KEY
    INNER JOIN DB.TABLED D on A.A_KEY=D.D_KEY

我的结果带回记录,当我右键单击并选择“Count Rows”时,我会在弹出框中输入一个数字 - 比方说100,000。

但是当我按“Ctrl + A”突出显示所有记录时,我会得到不同数量的结果 - 比方说150,000。我右键单击并再次选择“Count Rows”,这次,弹出现在说150,000 - 在我做“Ctrl + A”之前,它说100,000。如果我将数据导出到SQL Developer的文本文件中,我会获得150,000条记录。

如果我查询相同的表选择一个Count,我会得到100,000条记录。

SELECT COUNT(*)
FROM DB.TABLEA A
    INNER JOIN DB.TABLEB B on A.A_KEY=B.B_KEY
    INNER JOIN DB.TABLEC C on A.A_KEY=C.C_KEY
    INNER JOIN DB.TABLED D on A.A_KEY=D.D_KEY

有没有人见过这个?这对我的数据集来说有点奇怪,或者SQL Developer中的某些东西有点“关闭”吗?

1 个答案:

答案 0 :(得分:1)

在SQL Developer中的网格/结果集中执行记录计数实际上并不计算语句返回的当前结果集中的行。

执行记录计数会运行另一个基本上执行

的查询
SELECT COUNT(1)
FROM (
  "your original query here"
     ) sub1

那么,它会有所不同吗?是。