MS-Script запрос не может работать или работать - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь создать запрос, чтобы показать 24 самых популярных страницы, присоединившись к 3 таблицам.

Но у меня проблемы с тем, чтобы заставить его работать.Либо у него есть проблема с использованием UNION, JOIN или частью написанной функции / сценария, в общем.

Таблицы:

+---------------+
| dbo_Good_URLs |
+---------------+
| Url           |
| HTTPAlias     |
| PortalID      |
| page_title    |
+---------------+
+-----------------+
| dbo_vw_GoodURLs |
+-----------------+
| URL             |
| PortalID        |
| HTTPAlias       |
| Title           |
+-----------------+
+-----------------------+
| dbo_analytics_history |
+-----------------------+
| URL                   |
| PortalId              |
| HTTPAlias             |
| Page_Title            |
| Report_Month          |
| Report_Year           |
| Pageviews             |
| Unique_Pageviews      |
| Entrances             |
| Total_Time_on_Page    |
| Bounces               |
| Exits                 |
| Avg_Time_on_Page      |
| Bounce_Rate           |
| Exit_Rate             |
+-----------------------+

enter image description here

Я пытался использовать IIF(Is Null(**) И я просмотрел сам сценарий, чтобы понять, почему UNION и JOIN не работают, и я могу 'Я, кажется, не понимаю.

Я играл с этим всю неделю, и он просто не приходит ко мне.

SELECT TOP 24 dbo_Good_URLs.Url, Nz(dbo_analytics_history.Pageviews, 0) AS Total_Pageviews,
Nz(dbo_analytics_history.Pageviews, 0) AS Month1
FROM (SELECT Url FROM dbo_Good_URLs WHERE HTTPAlias IN ('x.org', 'ab.x.org'))
 UNION 
SELECT Url FROM dbo_vw_GoodURLs WHERE dbo_Good_URLs.HTTPAlias IN ('x.org', 'ab.x.org')
LEFT OUTER JOIN dbo_analytics_history
ON dbo_Good_URLs.Url = dbo_analytics_history.URL AND dbo_analytics_history.HTTPAlias IN ('x.org', 'ab.x.org') AND dbo_analytics_history.Report_Month = 10
GROUP BY dbo_Good_URLs.Url, dbo_analytics_history.Pageviews
ORDER BY Nz(dbo_analytics_history.Pageviews, 0) DESC;

Результат, который я ищу, - этопоказать первые 24 страницы, просмотренные за октябрь месяц (т.е. месяц 10)

1 Ответ

0 голосов
/ 04 февраля 2019

Я бы рискнул предположить, что вы действительно ищете что-то вроде следующего:

select top 24 q.url, nz(a.pageviews, 0) as Total_Pageviews, nz(a.pageviews, 0) as Month1
from 
    (
        select dbo_good_urls.url from dbo_good_urls 
        where dbo_good_urls.httpalias in ('x.org', 'ab.x.org')
        union 
        select dbo_vw_goodurls.url from dbo_vw_goodurls 
        where dbo_vw_goodurls.httpalias in ('semcog.org', 'loggedin.semcog.org')
    ) q
    left join dbo_analytics_history a on q.url = a.url
)
where
    a.report_month is null or a.report_month = 10
order by 
    nz(a.pageviews, 0) desc;

Здесь целевые URL выбираются двумя объединенными подзапросами, а результат такого объединения остается объединеннымк вашей таблице dbo_analytics_history в поле url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...