选择count(字段)并选择字段,是否在同一行上计数?

时间:2016-07-03 11:38:08

标签: sql postgresql

如果我使用COUNT参数在mytable的字段上生成LIMIT

SELECT COUNT(field1), COUNT(field2)
FROM mytable
LIMIT 10000

如果我选择他们的字段

SELECT field1, field2
FROM mytable
LIMIT 10000

在相同的10000行上有两个请求selectcount吗?

因为我可以在第二个请求中添加ORDER BY子句,但是对于COUNT请求则不可能。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

不指望它,没有ORDER BY子句来指定所需的订单,没有保证!

用另一个选择包装第一个查询:

SELECT COUNT(field1),count(field2) 
FROM(SELECT field1,field2
     FROM mytable
     ORDER BY Order_Column
     LIMIT 10000) t

SELECT field1, field2
FROM mytable
ORDER BY Order_Column
LIMIT 10000

这些查询将处理相同的行

答案 1 :(得分:1)

除非您将order by添加到查询中,否则您无法对返回的行的顺序进行任何说明。您可以将order by添加到select count(...)的嵌套查询中以解决此问题。从本质上讲,第二个查询将成为select count(...)

的嵌套查询
-- Second query
SELECT field1, field2
FROM mytable
ORDER BY ... LIMIT 10000

-- First query
SELECT COUNT(field1), COUNT(field2) FROM (
    SELECT field1, field2
    FROM mytable
    ORDER BY ... LIMIT 10000
}