二嘎 2008-05-14 10:17
蛤蟆搬家的视频我看了,绝对是真的,是四川卫视的新闻。当时还找了个林业专家咨询,他说是他妈的环境太适合蛤蟆了,所以都出来了。
二嘎 2008-04-28 18:00
请教楼主
msdn:NTILE在msdn中的解释是:将有序分区中的行分发到指定数目的组中。各个组有编号,编号从一开始。对于每一个行,NTILE 将返回此行所属的组的编号。
也就是说所返回的值是组的编号,但是你的例子里有5个值为1的NTILE value
就是说第一组有5个值? 那为什么前三个分为一组?他们有何共性?对于你的解释我很不理解~
这是我的理解:我认为所传参数(3)并不代表3个一组,而是代表分组的总数目为3,就是说一共只能分为3组,数据库会按照一种算法一步步进行分配,本例中 第一次分配结果为1组categoryId1234 2组123 3组2
分配原则是1:不重复;2:按数字最全开始分配(例如第一组为1234)
第二次分配时从剩余数字里按categoryId最小的依次分配到三组里
由于剩余只剩2 所以分配到第一组中 这样结果为 1组 12234 2组123
3组2
假设我给你的原始数据增加几条记录
INSERT INTO t_ntile VALUES(10,6,'J')
INSERT INTO t_ntile VALUES(11,5,'K')
INSERT INTO t_ntile VALUES(12,5,'L')
INSERT INTO t_ntile VALUES(13,5,'M')
INSERT INTO t_ntile VALUES(14,5,'N')
按我的理解我的分配方案是(这是我没有验证过的,麻烦楼主验证)
第一次分配:categoryId:1组123456 2组1235 3组25
第二次分配:将剩余的2分配至1组 剩余的5分配至2组
最终结果为:1223456 12355 25
最后按categoryId后结果为
id categoryId ntile value
1 1 1
2 4 1
3 2 1
4 1 2
5 3 1
6 3 2
7 2 2
8 2 3
9 2 1
10 6 1
11 5 1
12 5 2
13 5 3
14 5 2
这是未按categoryId 排序的结果
二嘎 2008-04-22 09:31
这个问题我也遇到过,我觉得每个人要跟据不同情况解决,就像大家都出现了中文乱码,但是同一种方法并一定对每个人都适用~
我也是试过了多有方法都不还用,最后通过修改webconfig解决了问题。