当视图连接到查询时,order by命令能否在sql中工作?

cbwuti44  于 2021-08-13  发布在  Java
关注(0)|答案(0)|浏览(258)

我尽量提供清楚的信息。我正在使用潜望镜数据来编写sql。
我有一个数据集,并且我能够使用下面所示的sql,获得一个类似这样的数据表(第一行仅显示,第一列值被裁剪以保护数据):

左边第一列是我要搜索的值(a.value),
第二栏是已经回复的人数(没有发短信的人),
第三个是问题被回答的总次数(b.总的回答次数),
第四列是这个结果的总百分比(1*a.no\u of texters/b.total\u responses\u to \u q as percentage)
所以总体来说,我们可以看到54%的回答这个问题的人都认为“有谁可以和他说话”是a
我已按百分比说明排序,并限制搜索以获得前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
 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岁”)过滤潜望镜 Jmeter 板的顶部。
我希望这样,这样当我过滤时,数字会更新并显示:
回答了这个问题的新发短信的人数
一个新的总响应数(b.总响应到q)。
这将为14-17岁的人口创造一个新的百分比。
我想输入的联接是:-联接texter\u survey\u response tsr on tsr.response\u id=tsrv.response\u id-联接[general\u sigtables\u withdemo as gs]on gs.conversation\u id=tsr.conversation\u id-联接[partners\u keyid as p]on p.conversation\u id=tsr.conversation\u id
还有一个where命令需要为sql片段添加,我们需要它来激活过滤器。其中[sn\u genfilterdynamic]
但是,我遇到了一个问题,每当我添加创建过滤器所需的sql时-我看到以下错误,它不喜欢我在sql脚本末尾使用order by或limit函数:

但是如果我从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`

如果是这样的话,我可以在sql脚本的末尾丢失order by和limit命令。。。
但我希望有人能向我解释,为什么我可能无法结束我的查询,无论有没有这些?是否有其他选择或明显的错误。
我对sql还比较陌生,我正在努力学习,但这让我很困惑。
谢谢,
杰斯

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题