以下SQL语句不起作用,我不知道如何纠正它:
<rule name="redirect to home without referer" stopProcessing="true">
<match url="^login$" />
<conditions>
<add input="{HTTP_REFERER}" pattern="http://www.example.com" negate="true" />
</conditions>
<action type="Redirect" url="http://www.example.com/" />
</rule>
如果我删除TOP 10则会返回结果,否则我会
关键字“TOP”附近的语法不正确。
是否可以在单个列上应用select
a0.TEST as TEST,
count(DISTINCT TOP 10 a0.TEST_CLMN) as CC
from
dbo.TESTING a0
group by
TEST
和DISTINCT
?
编辑: TOP 10必须在选择之后吗?
答案 0 :(得分:1)
您可能希望计算不同的值并从您的组中获得前10个结果:
select top 10
a0.test,
count(distinct a0.test_clmn) as cc
from dbo.testing a0
group by a0.test
order by cc desc
答案 1 :(得分:1)
以下是我从您的查询中了解到的内容:
您希望为每个test_clmn
获取test
的不同值的数量,但如果有超过10个不同的值,您只需要将10作为计数结果。
如果这是真的,你可以这样做:
SELECT test,
CASE WHEN COUNT(DISTINCT test_clmn) > 10 THEN
10
ELSE
COUNT(DISTINCT test_clmn)
END As CountDistinct
FROM dbo.testing
GROUP BY test
但是,正如我在问题的评论中写的那样 - 发布的查询没有多大意义,所以这只是猜测。
答案 2 :(得分:0)
尝试这样的事情:
select distinct top 10 a0.TEST as TEST
from dbo.TESTING a0
答案 3 :(得分:0)
尝试:
>>> res
[['1', '1', '1'], ['4', '5', '8']]