sql - Oracle 11g 得到两个计数并将它们相除

标签 sql database oracle oracle11g

我正在尝试获取两个计数并将它们划分到 Oracle 11g 中......我尝试了它的两个版本

1)

SELECT 
  x.number/y.number 
FROM
(
  SELECT 
    COUNT(*) as "number" 
  FROM 
    GAME 
  WHERE 
    HOMETEAM='Blackpool' 
    AND FTR='H' 
    OR AWAYTEAM='Blackpool' 
    AND FTR='A'
) x 
join (
  SELECT COUNT(*) as "number" 
  FROM GAME 
  WHERE HOMETEAM='Blackpool' 
        OR AWAYTEAM='Blackpool'
)y;

我得到以下错误

ORA-01747: invalid user.table.column, table.column, or column specification 01747. 00000 - "invalid user.table.column, table.column, or column specification"

*Cause:
*Action: Error at Line: 1 Column: 10

2)

select 
  (
   SELECT COUNT(*) 
   FROM GAME 
   WHERE HOMETEAM='Blackpool' 
         AND FTR='H' 
         OR AWAYTEAM='Blackpool' 
         AND FTR='A'
   )     /
   (
   SELECT COUNT(*) 
   FROM GAME 
   WHERE HOMETEAM='Blackpool' 
   OR AWAYTEAM='Blackpool'
   );

在我运行这个之后..我得到以下错误

ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause:
*Action: Error at Line: 3 Column: 84

最佳答案

SELECT x."number"/y."number" 
FROM
(SELECT COUNT(*) as "number" 
   FROM GAME 
 WHERE HOMETEAM='Blackpool' AND FTR='H' OR AWAYTEAM='Blackpool' AND FTR='A') x
cross join 
(SELECT COUNT(*) as "number" 
  FROM GAME 
  WHERE HOMETEAM='Blackpool' OR AWAYTEAM='Blackpool') y;

Number 是保留字。如果您坚持使用它,那么请始终使用 "(双引号)。 如果您不打算使用任何 ON 子句,请使用 CROSS JOIN。您还可以使用 JOIN ON 1 = 1

select 
 (SELECT COUNT(*) 
  FROM GAME 
  WHERE HOMETEAM='Blackpool' AND FTR='H' OR AWAYTEAM='Blackpool' AND FTR='A')     
 /
 (SELECT COUNT(*) 
 FROM GAME 
 WHERE HOMETEAM='Blackpool' OR AWAYTEAM='Blackpool') 
 from dual

添加 From dual 它将正常工作。

关于sql - Oracle 11g 得到两个计数并将它们相除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36466013/

相关文章:

sql - 如何加快 Oracle SQL Developer 上的 REGEX LEVEL 查询速度

regex - Oracle中的简单正则表达式

MySQL - #1054 - 'childs' 中的未知列 'on clause'

sql - 如何将值的数组参数输入到 Firebird 存储过程?

sql - 带外键引用行数的多表选择

php - 如何通过在php中按时间顺序插入来跟踪mysql数据库表条目

sql - 使用 CONNECT BY LEVEL 时查询非常慢

sql - mysql从备份部分恢复

mysql - 更新慢,不知道为什么

sql - 在字符串中存储数组(数据库专家问题)