添加附加字段以选择语句

时间:2017-12-06 02:31:13

标签: sql oracle select expression

SQL新手希望得到一些select语句的帮助

我可以成功运行:

select distinct t.QUALIFIEDORGUNITCODE as DEALERNUMBER, 
       count(distinct(t.TRANSACTIONID)) as TRANSACTION_VOLUME
  from adtdealers.transaction t
  where t.DATECREATED between '01-oct-17' and '01-nov-17'
  group by t.QUALIFIEDORGUNITCODE;

但是如果我尝试在select中添加另一个字段,则会收到以下错误:

  

ORA-00936:缺少表达式00936. 00000 - "缺少表达式" *原因:*操作:行错误:17列:105

select to_char(t.DATECREATED, 'MON-DD') as DAY,
       count(distinct(t.TRANSACTIONID)) as TRANSACTION_VOLUME,
       distinct t.QUALIFIEDORGUNITCODE as DEALERNUMBER
  from adtdealers.transaction t
  where t.DATECREATED between '01-oct-17' and '01-nov-17'
  group by to_char(t.DATECREATED, 'MON-DD'), t.QUALIFIEDORGUNITCODE;

我也可以成功地运行:

select distinct t.QUALIFIEDORGUNITCODE as DEALERNUMBER,
       to_char(t.DATECREATED, 'MON-DD') as DAY
  from adtdealers.transaction t
  where t.DATECREATED between '01-oct-17' and '01-nov-17'
  group by t.QUALIFIEDORGUNITCODE, t.DATECREATED;

2 个答案:

答案 0 :(得分:0)

如果您使用select distinct,则几乎不需要group by。我想你只是打算:

select to_char(t.DATECREATED, 'MON-DD') as DAY,
       count(distinct t.TRANSACTIONID) as TRANSACTION_VOLUME, 
       t.QUALIFIEDORGUNITCODE as DEALERNUMBER
from adtdealers.transaction t
where t.DATECREATED between date '2017-10-01' and date '2017-11-01'
group by to_char(t.DATECREATED, 'MON-DD'), t.QUALIFIEDORGUNITCODE;

请注意,我更改了日期文字以使用date关键字的ISO标准格式。

答案 1 :(得分:0)

在select语句中只有一次可以使用distinct。