从LINQ到Objects的Enumerable.GroupBy是否保留组中元素的顺序?
我有一张桌子如下:
ID User Activity PageURL
1 Me act1 ab
2 Me act1 cd
3 You act2 xy
4 You act2 st
Run Code Online (Sandbox Code Playgroud)
我希望按用户和活动进行分组,这样我最终得到的结果如下:
User Activity PageURL
Me act1 ab, cd
You act2 xy, st
Run Code Online (Sandbox Code Playgroud)
如您所见,列PageURL由基于group by的逗号分隔在一起.
真的很感激任何指针和建议.
我希望能够从电子邮件表中选择一堆行,并通过发件人对它们进行分组.我的查询如下所示:
SELECT
`timestamp`, `fromEmail`, `subject`
FROM `incomingEmails`
GROUP BY LOWER(`fromEmail`)
ORDER BY `timestamp` DESC
Run Code Online (Sandbox Code Playgroud)
查询几乎按我的意愿运行 - 它选择通过电子邮件分组的记录.问题是主题和时间戳不对应于特定电子邮件地址的最新记录.
例如,它可能会返回:
fromEmail: john@example.com, subject: hello
fromEmail: mark@example.com, subject: welcome
Run Code Online (Sandbox Code Playgroud)
当数据库中的记录是:
fromEmail: john@example.com, subject: hello
fromEmail: john@example.com, subject: programming question
fromEmail: mark@example.com, subject: welcome
Run Code Online (Sandbox Code Playgroud)
如果"编程问题"主题是最新的,那么在分组电子邮件时如何让MySQL选择该记录呢?
我想在sqlalchemy中使用"group by and count"命令.我怎样才能做到这一点?
我想要做的mySQL命令有些困难.
SELECT a.timestamp, name, count(b.name)
FROM time a, id b
WHERE a.user = b.user
AND a.id = b.id
AND b.name = 'John'
AND a.timestamp BETWEEN '2010-11-16 10:30:00' AND '2010-11-16 11:00:00'
GROUP BY a.timestamp
Run Code Online (Sandbox Code Playgroud)
这是我目前的输出声明.
timestamp name count(b.name)
------------------- ---- -------------
2010-11-16 10:32:22 John 2
2010-11-16 10:35:12 John 7
2010-11-16 10:36:34 John 1
2010-11-16 10:37:45 John 2
2010-11-16 10:48:26 John 8
2010-11-16 10:55:00 John 9
2010-11-16 10:58:08 John 2
Run Code Online (Sandbox Code Playgroud)
如何将它们分组为5分钟的间隔结果?
我希望我的输出像
timestamp name count(b.name)
------------------- ---- -------------
2010-11-16 10:30:00 John 2 …Run Code Online (Sandbox Code Playgroud) 给定一个在每一行上都有时间戳的表,如何格式化查询以适应这种特定的json对象格式.
我试图将json对象组织成数年/月.
json将查询基于:
{
"2009":["August","July","September"],
"2010":["January", "February", "October"]
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的查询 -
SELECT
MONTHNAME(t.summaryDateTime) as month, YEAR(t.summaryDateTime) as year
FROM
trading_summary t
GROUP BY MONTH(t.summaryDateTime) DESC";
Run Code Online (Sandbox Code Playgroud)
查询正在崩溃,因为它(可预见地)将不同年份汇总在一起.
Oracle的表服务器提供内置函数TRUNC(timestamp,'DY').此函数将上一个星期日的任何时间戳转换为午夜.在MySQL中执行此操作的最佳方法是什么?
Oracle还提供TRUNC(timestamp,'MM')将时间戳转换为发生月份的第一天的午夜.在MySQL中,这个很简单:
TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01'))
Run Code Online (Sandbox Code Playgroud)
但这个DATE_FORMAT技巧几周不会奏效.我知道这个WEEK(timestamp)功能,但我真的不想要一年内的周数; 这个东西是多年的工作.
我有一个我正在查询的视图,看起来像这样:
Run Code Online (Sandbox Code Playgroud)BuildingName PollNumber ------------ ---------- Foo Centre 12 Foo Centre 13 Foo Centre 14 Bar Hall 15 Bar Hall 16 Baz School 17
我需要编写一个将BuildingNames组合在一起的查询,并显示一个PollNumbers列表,如下所示:
Run Code Online (Sandbox Code Playgroud)BuildingName PollNumbers ------------ ----------- Foo Centre 12, 13, 14 Bar Hall 15, 16 Baz School 17
我怎么能在T-SQL中做到这一点?我宁愿不为此写一个存储过程,因为它看起来有点矫枉过正,但我不是一个数据库人.看起来像SUM()或AVG()这样的聚合函数是我需要的,但我不知道T-SQL是否有一个.我正在使用SQL Server 2005.
t-sql sql-server group-by sql-server-2005 aggregate-functions
我有这样的数据帧:
cluster org time
1 a 8
1 a 6
2 h 34
1 c 23
2 d 74
3 w 6
Run Code Online (Sandbox Code Playgroud)
我想计算每个群组每个组织的平均时间.
预期结果:
cluster mean(time)
1 15 ((8+6)/2+23)/2
2 54 (74+34)/2
3 6
Run Code Online (Sandbox Code Playgroud)
我不知道如何在熊猫中做到这一点,任何人都可以帮忙吗?
在Pandas数据帧上进行groupby的最佳方法是什么,但从该组中排除某些列?例如,我有以下数据帧:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 Wheat 5312 Ha 10 20 30
2 Afghanistan 25 Maize 5312 Ha 10 20 30
4 Angola 15 Wheat 7312 Ha 30 40 50
4 Angola 25 Maize 7312 Ha 30 40 50
Run Code Online (Sandbox Code Playgroud)
我想通过列Country和Item_Code进行分组,并且只计算落在Y1961,Y1962和Y1963列下的行的总和.生成的数据框应如下所示:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 C3 5312 Ha 20 40 60
4 Angola 25 C4 7312 Ha 60 80 100
Run Code Online (Sandbox Code Playgroud)
现在我这样做:
df.groupby('Country').sum()
Run Code Online (Sandbox Code Playgroud)
但是,这也会将Item_Code列中的值相加.有什么方法可以指定要在sum()操作中包含哪些列以及要排除哪些列?