我正在学习mongoDB的作业,我正在研究查找每个州拉链最多的城市
db.zips.distinct("state", db.zips.aggregate([ {$group:{_id:{state:"$state", city:"$city"},numberOfzipcodes:{$sum:1}}}, {$sort:{numberOfzipcodes:-1}}]))
Run Code Online (Sandbox Code Playgroud)
查询的聚合部分似乎工作正常,但当我添加不同的我得到一个空结果.这是因为我在身份证上有州吗?我可以做一些像distinct("_ id.state ??或者你有其他任何提示吗?
谢谢!
什么是添加一种合适的方式DISTINCT和/或GROUPBY以ContentResolver-基于查询.现在我必须为每个特殊情况创建自定义URI.有没有更好的办法?(我仍以1.5为最低共同标准编程)
我有一个看起来像这样的对象:
Notice
{
string Name,
string Address
}
Run Code Online (Sandbox Code Playgroud)
在List<Notice>我想要输出所有不同的名称和特定在集合中出现的次数.
例如:
Notice1.Name="Travel"
Notice2.Name="Travel"
Notice3.Name="PTO"
Notice4.Name="Direct"
Run Code Online (Sandbox Code Playgroud)
我想要输出
Travel - 2
PTO - 1
Direct -1
Run Code Online (Sandbox Code Playgroud)
我可以使用此代码获得不同的名称,但我似乎无法在1个linq语句中获得所有计数
theNoticeNames= theData.Notices.Select(c => c.ApplicationName).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud) 给定对象集合'items'的linq表达式,例如:
var total = (from item in items select item.Value).Distinct().Count()
Run Code Online (Sandbox Code Playgroud)
是否可以将其转换为使用linq函数/ lambdas:
items.Select(???).Distinct().Count()
Run Code Online (Sandbox Code Playgroud) 我有两个选择,我目前正在成功运行UNION.
(SELECT a.user_id,a.updatecontents as city,b.country
FROM userprofiletemp AS a
LEFT JOIN userattributes AS b ON a.user_id=b.user_id
WHERE typeofupdate='city')
UNION DISTINCT
(SELECT a.user_id,c.city,c.country
FROM userverify AS a
LEFT JOIN userlogin AS b ON a.user_id=b.user_id
LEFT JOIN userattributes AS c ON a.user_id=c.user_id
WHERE b.active=1 AND a.verifycity=0);
Run Code Online (Sandbox Code Playgroud)
结果如下:
100 Melbourne Australia
200 NewYork America
300 Tokyo Japan
100 Sydney Australia
Run Code Online (Sandbox Code Playgroud)
catch是查询将带来重复的user_id(在本例中为100).第一个查询中的详细信息先于我,如果在第二个查询中重复user_id,则不需要它.
有没有办法让UNION成为列上的DISTINCT?在这种情况下user_id?有没有办法进行上述调用而不是获取重复的user_id - 删除第二个.我应该以不同的方式重新编写查询,而不是使用UNION.真的希望它作为一个查询 - 如果需要,我可以使用SELECT和PHP来清除重复.
亚当
什么查询将计算行数,但由三个参数区分?
例:
Id Name Address
==============================
1 MyName MyAddress
2 MySecondName Address2
Run Code Online (Sandbox Code Playgroud)
就像是:
select count(distinct id,name,address) from mytable
Run Code Online (Sandbox Code Playgroud) 我似乎无法为以下(可能是一个古老的)问题找到合适的解决方案,所以希望有人可以解决一些问题.我需要在mySQL中返回1个不同的列以及其他非不同列.
我在mySQL中有以下表:
id name destination rating country
----------------------------------------------------
1 James Barbados 5 WI
2 Andrew Antigua 6 WI
3 James Barbados 3 WI
4 Declan Trinidad 2 WI
5 Steve Barbados 4 WI
6 Declan Trinidad 3 WI
Run Code Online (Sandbox Code Playgroud)
我希望SQL语句返回DISTINCT名称以及目的地,基于国家/地区的评级.
id name destination rating country
----------------------------------------------------
1 James Barbados 5 WI
2 Andrew Antigua 6 WI
4 Declan Trinidad 2 WI
5 Steve Barbados 4 WI
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,詹姆斯和德克兰有不同的评级,但名称相同,所以他们只返回一次.
以下查询返回所有行,因为评级不同.无论如何我可以返回上面的结果集吗?
SELECT (distinct name), destination, rating
FROM table
WHERE country = 'WI'
ORDER BY …Run Code Online (Sandbox Code Playgroud) 假设我收集了以下文件:
{
"family": "Smith",
"children": [
{
"child_name": "John"
},
{
"child_name": "Anna"
},
]
}
{
"family": "Williams",
"children": [
{
"child_name": "Anna"
},
{
"child_name": "Kevin"
},
]
}
Run Code Online (Sandbox Code Playgroud)
现在我想以某种方式获得以下列出的所有系列的唯一子名称:
[ "John", "Anna", "Kevin" ]
Run Code Online (Sandbox Code Playgroud)
结果的结构可能不同.如何在MongoDB中实现这一目标?应该是简单的事情,但我无法弄清楚.我在集合上尝试了aggregate()函数,但后来我不知道如何应用distinct()函数.
我有一个包含> 1M行数据和20多列的表.
在我的表格(tableX)中,我在一个特定列(troubleColumn)中识别出重复记录(~80k).
如果可能的话,我想保留原始表名并从我有问题的列中删除重复记录,否则我可以创建一个具有相同模式但没有重复项的新表(tableXfinal).
我不擅长SQL或任何其他编程语言,所以请原谅我的无知.
delete from Accidents.CleanedFilledCombined
where Fixed_Accident_Index
in(select Fixed_Accident_Index from Accidents.CleanedFilledCombined
group by Fixed_Accident_Index
having count(Fixed_Accident_Index) >1);
Run Code Online (Sandbox Code Playgroud) 对于我的问题,我们有一个架构,其中一张照片有很多标签和许多评论.因此,如果我有一个查询,我想要所有的注释和标记,它会将行相乘.因此,如果一张照片有2个标签和13条评论,我会为这张照片获得26行:
SELECT
tag.name,
comment.comment_id
FROM
photo
LEFT OUTER JOIN comment ON comment.photo_id = photo.photo_id
LEFT OUTER JOIN photo_tag ON photo_tag.photo_id = photo.photo_id
LEFT OUTER JOIN tag ON photo_tag.tag_id = tag.tag_id
Run Code Online (Sandbox Code Playgroud)

这对大多数事情来说都很好,但这意味着如果我GROUP BY和那时json_agg(tag.*),我得到第一个标签的13个副本和第二个标签的13个副本.
SELECT json_agg(tag.name) as tags
FROM
photo
LEFT OUTER JOIN comment ON comment.photo_id = photo.photo_id
LEFT OUTER JOIN photo_tag ON photo_tag.photo_id = photo.photo_id
LEFT OUTER JOIN tag ON photo_tag.tag_id = tag.tag_id
GROUP BY photo.photo_id
Run Code Online (Sandbox Code Playgroud)

相反,我想要一个只有'郊区'和'城市'的数组,如下所示:
[
{"tag_id":1,"name":"suburban"},
{"tag_id":2,"name":"city"}
]
Run Code Online (Sandbox Code Playgroud)
我可以json_agg(DISTINCT tag.name),但是当我想要整个行作为json时,这只会产生一个标签名称数组.我想json_agg(DISTINCT ON(tag.name) …