标签: clause

SQL OVER()子句 - 何时以及为何有用?

    USE AdventureWorks2008R2;
GO
SELECT SalesOrderID, ProductID, OrderQty
    ,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
    ,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg'
    ,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count'
    ,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min'
    ,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max'
FROM Sales.SalesOrderDetail 
WHERE SalesOrderID IN(43659,43664);
Run Code Online (Sandbox Code Playgroud)

我读到了那个条款,我不明白为什么需要它.这个功能Over有什么作用?怎么Partitioning By办?为什么我不能写一个查询Group By SalesOrderID

mysql sql sql-server clause aggregate-functions

163
推荐指数
7
解决办法
23万
查看次数

如何崩溃If,Else,For,Foreach等条款?

我有时会遇到很长的条款,我正在寻找一种允许我折叠它们的方法,就像我可以在默认情况下折叠类,方法和命名空间一样.

是否有Visual Studio扩展程序可以做到这一点?ReSharper和JustCode都没有允许它.

谢谢!

c# clause visual-studio visual-studio-extensions

63
推荐指数
4
解决办法
6万
查看次数

在MySQL中的LIMIT子句中使用变量

我正在编写一个存储过程,其中有一个名为my_size的输入参数,它是一个INTEGER.我希望能够LIMITSELECT声明中的子句中使用它.显然这是不支持的,有没有办法解决这个问题?

# I want something like:
SELECT * FROM some_table LIMIT my_size;

# Instead of hardcoding a permanent limit:
SELECT * FROM some_table LIMIT 100;
Run Code Online (Sandbox Code Playgroud)

mysql variables clause limit

40
推荐指数
5
解决办法
5万
查看次数

Visual Prolog中的"不相等"标志?

我在Visual Prolog中找不到任何关于"不等于"标志的文档.请提供此问题的正确解决方案:

class predicates
        sister : (string Person, string Sister) nondeterm(o,o).
    clauses
        sister(Person, Sister) :-
            Person [not-equal-sign] Sister,
            parent(Person, Parent),
            parent(Sister, Parent),
            woman(Sister).
Run Code Online (Sandbox Code Playgroud)

equals prolog clause visual-prolog

26
推荐指数
2
解决办法
8万
查看次数

LINQ中的多个.Where()语句是性能问题吗?

我想知道多个.Where()语句是否存在性能影响.例如我可以写:

var contracts =  Context.Contract
    .Where(
        c1 =>
            c1.EmployeeId == employeeId
        )
    .Where(
        c1 =>
            !Context.Contract.Any(
                c2 =>
                    c2.EmployeeId == employeeId
                    && c1.StoreId == c2.StoreId
                    && SqlFunctions.DateDiff("day", c2.TerminationDate.Value, c1.DateOfHire.Value) == 1
                )
        )
    .Where(
        c1 =>
            !Context.EmployeeTask.Any(
                t =>
                    t.ContractId == c1.Id
                )
        );
Run Code Online (Sandbox Code Playgroud)

或者我可以将它们全部组合到一个Where()子句中,如下所示:

var contracts =  Context.Contract
    .Where(
        c1 =>
            c1.EmployeeId == employeeId
            && !Context.Contract.Any(
                c2 =>
                    c2.EmployeeId == employeeId
                    && c1.StoreId == c2.StoreId
                    && SqlFunctions.DateDiff("day", c2.TerminationDate.Value, c1.DateOfHire.Value) == 1
                )
            && !Context.Employee_Task.Any(
                t =>
                    t.ContractId == c1.Id …
Run Code Online (Sandbox Code Playgroud)

c# linq performance clause where

20
推荐指数
1
解决办法
3649
查看次数

spock单元测试循环在then子句中

我在then子句中有一个带循环的测试:

result.each {
  it.name.contains("foo")
  it.entity.subEntity == "bar"
}

for (String obj : result2) {
  obj.name.contains("foo")
  obj.entity.subEntity == "bar"
}
Run Code Online (Sandbox Code Playgroud)

最近我意识到循环没有真正测试过.无论我是否有foo或bar或其他任何东西,测试总是绿色的:)我发现,循环必须以不同的方式进行测试,例如使用'every'?但只是将'each'更改为'every'抛出异常:

result.every {
  it.name.contains("foo")
  it.entity.subEntity == "bar"
}

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Spec expression: 1: expecting '}', found '==' @ line 1, column 61.
   s("foo") it.entity.rootEntity == "bar" }
Run Code Online (Sandbox Code Playgroud)

我应该如何在测试中正确使用循环?我正在使用spock 0.7-groovy-2.0

testing loops clause spock

16
推荐指数
1
解决办法
9694
查看次数

计算一个条款的调用次数

我有一个如下的条款:

lock_open:-
        conditional_combination(X),
        equal(X,[8,6,5,3,6,9]),!,
        print(X).

这个条款成功了.但是我想知道在之前调用conditional_combination()的次数是多少次equal(X,[8,6,5,3,6,9]).该程序是通过遵循一些规则来生成排列.我需要生成多少个排列来获得像865369这样的特定值.

recursion count prolog clause

12
推荐指数
2
解决办法
930
查看次数

Android sqlite中的WHERE IN子句?

我无法获得WHERE IN子句来处理android SQLite数据库.

有没有办法在android中执行这样的语句?:

SELECT body FROM table1 WHERE title IN ('title1', 'title2', 'title3')
Run Code Online (Sandbox Code Playgroud)

database sqlite android clause where

10
推荐指数
2
解决办法
2万
查看次数

如何在Ruby中正确使用guard子句

在此示例中使用guard子句的正确方法是什么?

def require_admin
  unless current_user && current_user.role == 'admin'
    flash[:error] = "You are not an admin"
    redirect_to root_path
  end        
end
Run Code Online (Sandbox Code Playgroud)

尝试使用这些https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals约定重写时,我不知道在哪里放置flash消息

ruby ruby-on-rails clause guard

10
推荐指数
1
解决办法
1万
查看次数

与参数一起使用时如何优化"OR"子句的使用(SQL Server 2008)

我想知道是否有任何明智的方法来重写以下查询,以便优化器使用列上的索引?

Create Procedure select_Proc1
    @Key1 int=0,
    @Key2 int=0
As
BEGIN
    Select key3
    From Or_Table
    Where (@key1 =0 OR Key1 =@Key1) AND
          (@key2 =0 OR Key2 =@Key2)
END
GO
Run Code Online (Sandbox Code Playgroud)

即使WHERE子句中的列被索引覆盖,SQL Server也无法使用这些索引.这提出了一个问题,即是否有任何东西"阻止"索引的使用.这个问题的答案是肯定的 - 罪魁祸首是参数和"或"条件.索引不包含这些参数,这意味着SQL Server无法使用任何索引来评估"@ key1 = 0"(同样适用于@ key2 = 0的条件).实际上,这意味着SQL Server无法使用索引来评估子句"@ key1 = 0 OR Key1 = @ key1"(因为"OR"子句是两个条件所涵盖的行的并集).同样的原则也适用于其他条款(re.key2).这导致SQL Server得出结论,没有索引可用于提取行,使SQL Server能够利用下一个最佳方法 - 聚簇索引扫描

如您所见,如果WHERE子句中的谓词为"OR",则SQL优化器将不使用列上的索引.针对此问题的一种解决方案是使用IF子句为所有可能的参数组合分隔查询.

请阅读这篇简短的文章,以便更好地了解问题:http://www.sql-server-performance.com/articles/per/optimize_or_clause_p1.aspx

现在我的问题是,如果可能的组合只有三到四个,我们该怎么办?为每个组合编写单独的查询似乎不是一个合理的解决方案.这个问题还有其他解决方法吗?

sql-server indexing performance clause

8
推荐指数
2
解决办法
1万
查看次数