0

任何有关此 Oracle 查询的正确公式的帮助表示赞赏:

 WITH 
    anaq1 as 
        ( SELECT 
              POPULATION, 
              YEAR, 
              COUNTRY_OR_AREA 
              FROM POPULATIONS2 
              WHERE 
                 country_or_area = 'France' OR 
                 country_or_area = 'Brazil' 
         ) 
        select 
            COUNTRY_OR_AREA , 
            COUNT(*) AS OCCURANCES  
            from anaq1  
         ORDER BY COUNT(*) DESC 
4

1 回答 1

2

缺少GROUP BY条款:

 WITH 
    anaq1 as 
    ( SELECT 
          POPULATION, 
          YEAR, 
          COUNTRY_OR_AREA 
          FROM POPULATIONS2 
          WHERE 
             country_or_area = 'France' OR 
             country_or_area = 'Brazil' 
     ) 
    select 
        COUNTRY_OR_AREA , 
        COUNT(*) AS OCCURANCES  
        from anaq1  
        GROUP BY COUNTRY_OR_AREA
        ORDER BY COUNT(*) DESC 

整个事情可以简化:

SELECT COUNTRY_OR_AREA, COUNT(*) AS OCCURANCES  
   FROM POPULATIONS2  
   WHERE country_or_area in ('France', 'Brazil')
   GROUP BY COUNTRY_OR_AREA
   ORDER BY COUNT(*) DESC 

这是计算一个国家或地区记录出现在 population2 表中的次数。

于 2013-07-04T16:21:21.837 回答