Я постарался предоставить как можно более четкую информацию. Я использую данные Periscope для записи SQL.
У меня есть набор данных, и я могу, используя SQL, показанный ниже, получить таблицу данных, которая выглядит примерно так (первая строка показала только и значение первого столбца обрезано для защиты данных):
- первый левый столбец - это значение I я ищу (a.value),
- второй столбец - это количество людей, которые ответили (a.No_Of_Texters),
- третий - общее количество количество раз, когда на вопрос был дан ответ (b.total_responses_to_Q) ,
- четвертый столбец - это общий процент, который это дает (1 * a.No_Of_Texters / b.total_responses_to_Q в процентах )
- итак, в целом мы видим, что 54% людей, ответивших на этот вопрос, получили a.value «кому еще можно поговорить»
- Я заказал в процентах от c, и ограничил поиск, чтобы получить первые 6 результатов.
Это SQL I u sed, чтобы создать это:
`select
a.value, a.No_Of_Texters, b.total_responses_to_Q, 1 *
a.No_Of_Texters/b.total_responses_to_Q as percentage
from
(select
tsrv.value as value, count(distinct tsrv.response_id) as No_Of_Texters
from
texter_survey_response_value tsrv
where
tsrv.question_id in (84)
group by value) a
join(
select
count(distinct tsrv.response_id) as total_responses_to_Q
from
texter_survey_response_value tsrv
where
tsrv.question_id in (84)) b
order by percentage desc
limit 6`
У меня есть представления, которые нужно объединить с запросом SQL, чтобы я мог фильтровать верхнюю часть панели мониторинга перископа с помощью фильтров, которые мы уже настроили (например, возраст '14-17 лет ').
Я бы хотел, чтобы при фильтрации числа обновлялись и показывали мне:
- новый номер. текстовщиков (a.no_of_texters), ответивших на этот вопрос, и
- новое общее количество ответов (b.total_responses_to_Q).
- Это сгенерирует новый процент для этой популяции 14-17 лет.
Я хотел бы ввести следующие объединения: - join texter_survey_response tsr на tsr.response_id = tsrv.response_id - присоединиться к [ general_sigtables_withdemo как gs] на gs.conversation_id = tsr.conversation_id - присоединиться к [ partners_keyid как p ] на p.conversation_id = tsr. talk_id
Существует также команда where, которую необходимо добавить для фрагмента SQL, который нам нужен для активации фильтров. где [ sn_genfilterdynami c]
Однако я сталкиваюсь с проблемой всякий раз, когда я добавляю SQL, необходимый для создания фильтра - я вижу следующую ошибку: мне не нравится, что я использую функции ORDER BY или LIMIT в конце сценария SQL:
, но если я удалю эти две строки с конца сценария SQL:
`order by percentage desc
limit 6`
Затем я получаю следующую ошибку ... как кажется, я не могу завершить запрос при соединении.
Вот новый SQL, который я пытаюсь использовать для добавления объединений, которые позволят мне использовать фильтры:
`select
a.value, a.No_Of_Texters, b.total_responses_to_Q, 1 * a.No_Of_Texters/b.total_responses_to_Q
as percentage
from
(select
tsrv.value as value, count(distinct tsrv.response_id) as No_Of_Texters
from
texter_survey_response_value tsrv
join texter_survey_response tsr on tsr.response_id = tsrv.response_id
join [general_sigtables_withdemo as gs] on gs.conversation_id = tsr.conversation_id
join [partners_keyid as p] on p.conversation_id = tsr.conversation_id
where
tsrv.question_id in (84)
and [sn_genfilterdynamic]
group by value) as a
join(
select
count(distinct tsrv.response_id) as total_responses_to_Q
from
texter_survey_response_value tsrv
join texter_survey_response tsr on tsr.response_id = tsrv.response_id
join [general_sigtables_withdemo as gs] on gs.conversation_id = tsr.conversation_id
join [partners_keyid as p] on p.conversation_id = tsr.conversation_id
where
tsrv.question_id in (84)
and [sn_genfilterdynamic]) as b
order by percentage desc
limit 6`
Если это так , Я могу потерять команды ORDER BY и LIMIT в конце моего SQL скрипта ...
Но я надеялся, что кто-то сможет объяснить мне, почему я не смогу завершить свой запрос одновременно с этим или без них? И есть ли какие-то альтернативы или явно очевидные ошибки.
Я относительно новичок в SQL, и я пытаюсь учиться, но это поставило меня в тупик
Спасибо,
Джесс