我在这里看到了类似的问题,但无法弄清楚如何在Cartesian产品中使用Contains所需的结果情况:
LINQ To SQL异常:除Contains运算符外,本地序列不能用于查询运算符的LINQ to SQL实现
假设我有以下内容:
var a = new [] { 1, 4, 7 };
var b = new [] { 2, 5, 8 };
var test =
from i in a
from j in b
select new {
A = i,
B = j,
AB = string.Format("{0:00}a{1:00}b", i, j),
};
foreach (var t in test)
Console.Write("{0}, ", t.AB);
Run Code Online (Sandbox Code Playgroud)
这很好用,我得到这样的转储(注意,我想要笛卡尔积):
01a02b, 01a05b, 01a08b, 04a02b, 04a05b, 04a08b, 07a02b, 07a05b, 07a08b,
Run Code Online (Sandbox Code Playgroud)
现在,我真正想要的是将这个和笛卡尔产品再次对照我的数据库表中的ID.但是,只要我再添加一个from子句而不是引用对象,引用SQL表,我就会收到错误.因此,将上面的内容改为类似的地方,其中db被定义为一个新的DataContext(即派生自System.Data.Linq.DataContext的类):
var a = new [] { …Run Code Online (Sandbox Code Playgroud) 我正试图用Hive做下面的事情.如何将Hive中的列定义为子查询?这可能在Hive中吗?
hive -e "
select
distinct i.SearchListingID,
(select count(*)
from calls c
where c.ServiceID = i.SearchListingID
) as CallsCount
from Impressions i
where i.yyyymmdd = 20120401
limit 10" > ImpressionCalls.txt
Hive history file=/tmp/jd/hive_job_log_jd_201205222049_550931420.txt
Run Code Online (Sandbox Code Playgroud)
失败:解析错误:第4:1行无法识别"select"'count''附近的输入('在表达式规范中'