由买买提看人间百态

topics

全部话题 - 话题: groupby
1 2 下页 末页 (共2页)
M*****R
发帖数: 650
1
【 以下文字转载自 Database 讨论区 】
发信人: MarinSR (MarinSR), 信区: Database
标 题: 一个SQL的问题(Groupby和Having的问题)
发信站: BBS 未名空间站 (Fri Oct 29 17:53:30 2010, 美东)
这样一个表格:
Visitor_ID | Session_ID | Count
1 11 1
1 12 2
2 13 1
2 14 1
3 15 1
需要找到所有的visitor,其count总数>=3,还要同时得到其所有的session,也就是说,
结果应该如下:
Visitor_ID | Session_ID | Count
1 11 1
1 12 2
也就是说,select中要有visitor_ID和sessio... 阅读全帖
M*****R
发帖数: 650
2
这样一个表格:
Visitor_ID | Session_ID | Count
1 11 1
1 12 2
2 13 1
2 14 1
3 15 1
需要找到所有的visitor,其count总数>=3,还要同时得到其所有的session,也就是说,
结果应该如下:
Visitor_ID | Session_ID | Count
1 11 1
1 12 2
也就是说,select中要有visitor_ID和session_ID,但是having的层次只能是
visitor_ID.
如果groupby 和having是这样
group by visitor_ID having count(count) >=3
我不能把session_ID放在select里面
如果groupby 和having是这样... 阅读全帖
M*****R
发帖数: 650
3
Thanks for the link, but how can OVER clause help here?
My problem is with the HAVING. I want the condition in HAVING to be
calculated on a different level from the groupby.
OVER doesn't seem to work with HAVING.
v*****r
发帖数: 1119
4
OVER can be used together with Groupby/Having, but there is no need to use
OVER in your case.
楼上贴得那个用 subquery (exists) 的就可以解决你的问题呀, 或者你也可以用
inline view, 比如:
select t.visitor_id, t.session_id, t.count, t_v_count.count_again
from t,(select visitor_id, count(count) count_again from t group by visitor
_id having count(count) >=3) t_v_count
where t.visitor_id = t_v_count.visitor_id

说,
t*****g
发帖数: 1275
5
来自主题: Database版 - query: in sql server 2005
hmm...不考虑efficiency先,
第一个好作,过去30天记录按customer_id groupby 一下,得view v1
把条件变一下,过去60天记录按customer_id groupby 一下得view v2
v1 right out join v2
x******a
发帖数: 6336
6
来自主题: Programming版 - 请教一个python(pandas)的效率问题
我有一个MultiIndex的pandas DataFrame df
df.shape=(3000, 800)
1. %timeit df.groupby(level=['a','b']).aggregate(scipy.stats.nanmedian)
的结果是best of 3: 39.9 s per loop
2. %timeit df.groupby(level=['a', 'b']).median()
的结果是best of 3: 113 ms per loop
差了大概400倍。
我想要用一个自己定义的函数winsorized_mean.试了第一种,best of 3: 1 min 41s
per loop.请问可以怎么改进?
多谢!
S******y
发帖数: 1123
7
来自主题: Statistics版 - 如何处理下面这种情况
#Python 2.6 StatsGuy 2010-09-27
import itertools
txt='''
1001
1001
1001
1001
1002
1002
1002
1002
1002'''
txt_lst = txt.split('\n')
txt_lst.remove('')
def get_my_id(ls):
my_id = ls[0:4]
return my_id
# Loop over id-blocks using the groupby function
for my_id, g in itertools.groupby(txt_lst, get_my_id):
ls=list(g)
for index, item in enumerate(ls):
print item + '.' + str(index+1)
#################################################
H*******g
发帖数: 6997
8
来自主题: JobHunting版 - 请教一道单链表问题
List inputSet = new List();
inputSet .Add(1);
inputSet .Add(1);
inputSet .Add(2);
inputSet .Add(3);
inputSet .Add(3);
inputSet .Add(5);
var duplicates = inputSet
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
var result = inputSet.Except(duplicates).OrderBy(x=>x);
真受不了楼上的。。。这么简单的一个题目,弄的那么多行干嘛啊。。。这都是啥年代的代码了?
b*****u
发帖数: 648
9
来自主题: JobHunting版 - 海量ip计数的另一种解法
最近面的一家web公司,最后一轮CTO老头。
问了一个经典题,从一个很大的日志文件中找出出现次数最多的ip。
我当时给的是“秒杀99%海量数据”帖里的标准解法,hash+merge
老头嘿嘿一笑,然后问我,你估计你把这一坨东西coding出来,要花多久?一小时?一
天?一个月?
我当然知道不妙,但是也只能顺着他说那就一天吧。
他说,现在让你用一行代码解决这个问题,怎么搞。
跪了。
后来他写了他的办法: 不用hash,直接把日志等分成几个小文件,然后用awk/sed对每
个文件进行类似于SQL里groupby的操作,最后加总取最大值,总共一行bash命令搞定 (
具体的命令我也忘了)。 严格来说并不便于scale,但是便于coding, batch和customize
学术讨论和生产实践的差别。
l*****t
发帖数: 2019
10
要我就这么地。说上学时学过的database 和 sql。会个schema.design, er.diagram,
select from where.groupby having, 够了。都是书本知识,其它装也装不像。

DBMS
z*******3
发帖数: 13709
11
来自主题: JobHunting版 - 想转CS的,下决心很重要
说点题外的,老中搞cs,喜欢装逼,什么难上什么
比如os,就喜欢各种实现原理,那些东西就算你真懂
也要耗你十多年时间去琢磨,才能成为内行人
但是老板等不了那么久,平常干活,你给我搞定,搞不定就滚蛋
这个时候时间很重要,所以一定要学会站在巨人的肩膀上
别人做过的东西,就不要自己再去写一遍了,直接拿过来,安装好
照着他们的hello world跑一遍,弄懂了之后,照葫芦画瓢,开始干活
几个小时后,差不多了,搞定,准备下班,一般这个时间也就是下午三点左右
比如学os,你把linux常见的命令和shell搞懂,就可以了,剩下的不管
一样的,做web,你把tomcat的servlet和jsp搞懂,剩下的不管
spring,你把怎么写bean,怎么启动搞懂,剩下的不管
hibernate和jdbc,你把怎么连db搞懂,怎么执行sql搞懂,怎么orm搞懂,剩下的不管
sql,你把crud搞懂,groupby和having搞懂,差不多了,store proc.不搞也罢
就跟看论文一样,哪有办法全部看过去,找自己需要的部分看,看懂了,剩下的不管
以此类推,很快你就能上手干活,给老板解决问题,时间久了,自... 阅读全帖
c***n
发帖数: 921
12
来自主题: JobHunting版 - 想转CS的,下决心很重要
mark

比如os,就喜欢各种实现原理,那些东西就算你真懂
也要耗你十多年时间去琢磨,才能成为内行人
但是老板等不了那么久,平常干活,你给我搞定,搞不定就滚蛋
这个时候时间很重要,所以一定要学会站在巨人的肩膀上
别人做过的东西,就不要自己再去写一遍了,直接拿过来,安装好
照着他们的hello world跑一遍,弄懂了之后,照葫芦画瓢,开始干活
几个小时后,差不多了,搞定,准备下班,一般这个时间也就是下午三点左右
比如学os,你把linux常见的命令和shell搞懂,就可以了,剩下的不管
一样的,做web,你把tomcat的servlet和jsp搞懂,剩下的不管
spring,你把怎么写bean,怎么启动搞懂,剩下的不管
hibernate和jdbc,你把怎么连db搞懂,怎么执行sql搞懂,怎么orm搞懂,剩下的不管
sql,你把crud搞懂,groupby和having搞懂,差不多了,store proc.不搞也罢
就跟看论文一样,哪有办法全部看过去,找自己需要的部分看,看懂了,剩下的不管
以此类推,很快你就能上手干活,给老板解决问题,时间久了,自然就有了经验
下面日子就越过越开心,... 阅读全帖
P****2
发帖数: 197
13
来自主题: JobHunting版 - Google 需要bug free 么?
最短SNIPPETS变形吧,一样2指针2字典,O(n)扫过去
public bool IsAnagramSubString(string str, string anagram)
{
var pStart = 0;
var pEnd = 0;
var targetDict = anagram.GroupBy(p => p)
.ToDictionary(
g => g.Key,
g => g.Count()
);
var targetTotalNum = targetDict.Values.Sum();
var foundDict = targetDict.ToDictionary(p => p.Key, p => 0);
var foundTotalNum = 0;
wh... 阅读全帖
p*****2
发帖数: 21240
14
来自主题: JobHunting版 - 求问一道用新语言写wordcount的题

val xs = List('a', 'a', 'b', 'c');
val res = xs.groupBy(identity).map(i=>(i._1, i._2.size)).toList.sortBy(_
._2)(implicitly[Ordering[Int]].reverse)
p*****2
发帖数: 21240
15
来自主题: JobHunting版 - Isomorphic Strings 的单Hashmap解法
def isomorphicString(s1:String, s2:String) = {
val f = (s1:String, s2:String) => s1.zip(s2).groupBy(_._1).map(_._2.
toSet).forall(_.size==1)
f(s1,s2) && f(s2,s1)
}

发帖数: 1
16
Groupby斜率进入map,每map内部的线段列表sortby x,y
l****r
发帖数: 119
17
来自主题: JobHunting版 - 离成功转码还有多远? (转载)
【 以下文字转载自 Programming 讨论区 】
发信人: lshtar (Ishtar), 信区: Programming
标 题: 离成功转码还有多远?
发信站: BBS 未名空间站 (Thu Oct 26 19:14:48 2017, 美东)
我是EE转码的,去年毕业,公司码农的工作没找到,在一个医院做了半年(号称研究机
器学习)的博后(工资低),说说感受:
能接触真实的医疗数据,数据库里有病人就诊记录包括吃的药和化验指标,但是数据比
较乱也很深奥,没有医疗行业知识,不懂药名和化验指标是什么意思,现学的话总觉得
差好远。所以,老板说让做什么就做什么。主要用python,pandas,sklearn,某些问
题用R做。研究的问题感觉都比较trivial。感觉都不是真正的机器学习,是简单的算数
分析。问题的定义也不是特别清楚。
还做了几个NLP的小project,论文的聚类,涉及到:
web scraping, 把论文从网上扒下来,用python beautiful soup, asyncio
feature 提取:用一个Medical Text Indexer (MTI)的... 阅读全帖
o*o
发帖数: 5155
18
sub-query
M*****R
发帖数: 650
19
一个query一定不行吗?
c*********n
发帖数: 1282
20
select Visitor_ID, Session_ID, Count
from table-name
where Visitor_ID in
{
select Visitor_ID
from table_name
group by Visitor_ID
having sum(count) > 3
}
M*****R
发帖数: 650
21
这个肯定是可以的,我就是想知道有没有不用multiple query和subquery的可能性,
因为我的这个table是好几个join起来的。
s********o
发帖数: 861
22
没有不用multiple query和subquery的可能性。因为你一方面要一组一组地算(count
),一方面要一行一行地算(结果要每一个Session_ID),所以不可能一个简单join搞
定。
M*****R
发帖数: 650
23
可能真是如此。
麻烦呀,我是一个程序产生SQL,加一个subquery,编程复杂度高了好多。

count
o*o
发帖数: 5155
24

不懂。
s****2
发帖数: 65
25
If using Oracle, try this site:
Analytic Functions
http://asktom.oracle.com/pls/asktom/f?p=100:1:2772772932418129
t*****g
发帖数: 1275
26
来自主题: Database版 - 请问怎么用sql实现hash
groupby B?
t*****g
发帖数: 1275
27
来自主题: Database版 - 请问怎么用sql实现hash
这样的话,可以试试groupby A,然后把能算的aggregation result都算一算,比如
count,avg,max,min,stddev之类的,也算是pseduo hash了八。倒是要自己review
最后结果的。
B*****g
发帖数: 34098
28
什么数据库,什么version

说,
h*******g
发帖数: 16
29
select visitor_id, session_id, count
from t
where exists (select sum(count)
from t t1
where visitor_id = t.visitor_id
having sum(count)>=3)
M*****R
发帖数: 650
30
SQL server 2008,这个有影响吗?
B*****g
发帖数: 34098
31
1.大多数本版sql问题都可以用PARTITION BY
2.老版本的数据库不一定支持PARTITION BY
http://msdn.microsoft.com/en-us/library/ms189461.aspx
B*****g
发帖数: 34098
32
为什么一定要用having呢?
SELECT Visitor_ID, Session_ID, Count
FROM (SELECT Visitor_ID, Session_ID, Count, SUM(Count) OVER(PARTITION BY Vis
itor_ID) AS ‘TotalCount’ FROM table)
WHERE TotalCount>=3
v*****r
发帖数: 1119
33
不是说非要用 having, LZ 的 concern 是能否避免 subquery, 不管用aggregate 或
analytic function,他提的问题无法避免 subquery, aggregate/analytic function
都必须要用在 subquery 里。

Vis
M*****R
发帖数: 650
34
多谢多谢。我就是想避免subquery,我在maintain一个query generation code logic
,现在
的设计不支持subquery。
看来是一定要改design了。
但是学到了OVER,也是很有用的,因为我的count要在不同的层上计算。我发现这个OVER
很有意义。

function
M*****R
发帖数: 650
35
OVER可以用在Having里面吗?为啥我的SQL SERVER 2008 R2说OVER cannot be used in
Having clause.

use
visitor
v*****r
发帖数: 1119
36
They can be used together with group/having, but not inside group/having.
The reason is analytic functions always the last step to be computed (except
ORDER BY clause), so only legal to be put in SELECT/ORDER BY.
Almost all analytic functions are designed by Oracle first, then got
accepted into SQL89/92 standards, so they should behave the same for all
rdbms including SQLSerer.

in
M*****R
发帖数: 650
37
Thanks. Taking note of this.

group/having.
(except
C**********a
发帖数: 14
38
来自主题: Database版 - 再现急求答案,多谢。
Consider the following EMPLOYEE table with attributes for employee
id, employee department and employee salary. An employee can belong
to more than one department; therefore, employee id and the department
number together is the key (composite key):
EMPLOYEE(id, dno, sal).
Write SQL statements for the following WITHOUT using any SQL
functions such as MAX, MIN, COUNT, etc. and WITHOUT using
Groupby-Having.
(a) Find employee id's for those employees who have at
least one other employee with the s... 阅读全帖
z******4
发帖数: 4716
39
来自主题: Database版 - 新手如何快速学习数据库
学习数据库最大的难度是太多概念,太多名词,新手很容易迷失。而且到处都是学习资
料,那些事有必要记住,那些是要参考,对新手来说,难以判断。
今天我就来,用魔派速成大法学习数据库
好,对于大多数新人来说,数据库是什么,可能都没有概念,但是excel不熟悉的,太
少了吧,不熟悉excel的,赶紧先补课。
我就用Excel来比喻,如何学习数据库
一个Excel里面,会有几个sheet,每一个sheet里面,有行有列,这些是基本的,大家
都懂吧
现在我要记录一下销售信息
新建一个Excel文件,sheet1取名叫客户,格式如下
姓名 年龄 地址 联系电话
客户1
客户2
在另外一个sheet里面,记录销售信息
好了,这东西太简单,没啥好讲的,大家记住就好了,下面就把excel的信息 映射成数
据库名词
行 - Row
列 - Column
sheet - table
excel文件 - tablespace
到这里新手头脑一定很清楚,这没什么,对吧,接下来用一些场景来进一步阐述数据库
结构,这些名词是一定要理解记忆的
1. 数据字典
假如,我有很多个sheet... 阅读全帖
u*********e
发帖数: 9616
40
来自主题: Database版 - 紧急求助, 关于SQL Server
把所有user都选出来放一个dataset里,然后用rdlc里面table row和column groupby
function
select * from table2 inner join table 1 on 2.id=1.id
inner join table3 on 3.userid=2.userid
c****e
发帖数: 1453
41
来自主题: DotNet版 - Bulk merge?
groupby一下再写?
如果想提高效率,可以先sample一下让后决定一步还是两步。
c****e
发帖数: 1453
42
来自主题: DotNet版 - Bulk merge?
groupby一下再写?
如果想提高效率,可以先sample一下让后决定一步还是两步。
B***i
发帖数: 724
43
来自主题: Programming版 - 关于mapreduce一问
scalding 里就用map, flatMap 等等来 来实现 一般fp的mapping, , 用 groupby 来实
现 maping + reducing
p*****2
发帖数: 21240
44
来自主题: Programming版 - 感觉写Scala就是一种享受

是4不象,哈哈。
val res = io.Source.fromURL(url)(io.Codec.UTF8).mkString
val deals = parse(res).extract[List[DealMeta]]
.filter(_.customer_taxonomy_hierarchy.getOrElse(List.empty[Taxonomy]).
exists(_.isGoods))
for(i<-deals) yield {
val taxonomy = i.customer_taxonomy_hierarchy.get
.filter(_.isGoods)
.map(_.category.get)
.groupBy(identity)
.mapValues(_.size)
.toList
.sortBy(- _._2)
val epoch = (List(DateTime.now, new DateTime(... 阅读全帖
c******f
发帖数: 243
45
来自主题: Programming版 - 问个java8问题
在学java 8,用Java做不出来...哪里错了
同样的题 majority number..
scala
val num = List(1,1,1,1,1,1,1,1,1,11,1,1,1,1,1,1,2,3,4,5,6,7)
num.groupBy(x=>x).filter(_._2.size > num.length / 2).map(_._1).foreach(
println)
output:
1
java
List nums = new ArrayList<>();
for (int i = 1; i <= 15; i++) nums.add(1);
for (int i = 1; i <= 3; i++) nums.add(i);
Collection> collect = nums.stream().collect(Collectors
.groupingBy(n -> n)).values();
System.out.println(... 阅读全帖
n*w
发帖数: 3393
46
来自主题: Programming版 - 问个java8问题
比较下c# version。
var num = new List {1,1,1,1,1,1.....}
num.GroupBy(x=>x).Where(x => x.Count() > num.Count()/2).Select(x=>x.Key);
n*w
发帖数: 3393
47
来自主题: Programming版 - 问个java8问题
f#:
let num = [1;1;1;1;1;1;......]
num
|> Seq.groupBy (fun x->x)
|> Seq.filter (fun x-> (Seq.length (snd x))>(Seq.length num)/2)
|> printfn "%A"
k****i
发帖数: 101
48
来自主题: Programming版 - 问个java8问题
-- hs aholic
findM lst =
(filter ((> len) . (* 2) . length))
. (groupBy (on (==) snd))
. (sortBy (on compare snd))
$ (zip [0 .. len - 1] lst)
where len = length lst
findM "aha" -- [[(0,'a'),(2,'a')]]
K*********n
发帖数: 2852
49
Scala纯新手,写了点测试代码:
###### build.sbt #########
name := "Train NB"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.2.0",
"commons-io" % "commons-io" % "2.4",
"com.google.code.gson" % "gson" % "2.2.4",
"org.la4j" % "la4j" % "0.4.9"
)
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
####### scala code ##########
package app.mycompany
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apa... 阅读全帖
p*****2
发帖数: 21240
50

这个你groupby一下就行了吧?
1 2 下页 末页 (共2页)