Поиск общего количества обращений и посетителей в sql Oracle

#sql #oracle

#sql #Oracle

Вопрос:

У меня есть таблица appWebStats со следующими полями таблицы AppName, userName, DateTime

я попытался

 select Count(a.appName) as totalHits ,
       Count(a.distinct userName) as visitors ,
       a.dateTime 
from appWebStats a 
where date between time between '11-APR-12' and '14-APR-12'   
group by a.appName ,a.userName,a.dateTime;
  

но его возврат 1 во всех строках

что здесь может быть не так?

Редактировать:

чего я хочу, так это

 day      appname     totalHist uniqueVisitors
11         app1          56         5
11         app2          36         8
11         app3          26         7
12         app1          56         6
12         app2          36         8
13         app1          27         9
14         app2          34         4
  

Ответ №1:

Ваш запрос не выполняет то, что указано в вашем вопросе. Если вам нужны посетители по приложениям, затем сгруппируйте по приложению и подсчитайте посетителей:

 select a.appName, 
       count(*) as visitors, 
       count(distinct a.userName) as uniqueVisitors
from table a
where datetime between '11-APR-12' and '14-APR-12'
group by a.appName;
  

Если вместо этого вам нужно количество приложений и посетителей в день, используйте время;

 select trunc(a.datetime) as theday, 
       count(distinct a.appName) as numapps,
       count(distinct a.userName) as uniqueVisitors
from table a
where datetime between '11-APR-12' and '14-APR-12'
group by trunc(a.datetime)
order by 1;
  

Редактировать:

Я думаю, что запрос, который вы ищете, это:

 select trunc(a.datetime) as theday, a.appName as numapps,
       count(*) as TotalHist,
       count(distinct a.userName) as uniqueVisitors
from table a
where datetime between '11-APR-12' and '14-APR-12'
group by trunc(a.datetime), a.appName
order by trunc(a.datetime), a.appName;
  

Комментарии:

1. @Haider . , , Вы должны поиграть с разными запросами, чтобы увидеть, что делают агрегации. Если вы собираетесь использовать SQL, вы должны получить представление о том, как работает язык.