我环顾四周,找不到任何答案.涉及的所有答案都没有使用GROUP BY.
背景: 我有一个paginator,它将为ActiveRecord.find提供选项.它添加了:limit和:offset选项并执行查询.我还需要做的是计算记录总数(减去限制),但有时查询包含:group选项,ActiveRecord.count尝试返回GROUP BY返回的所有行及其每个计数.我在Rails 2.3.5中这样做.
我想要的是ActiveRecord.count返回GROUP BY返回的行数.
下面是一些示例代码,用于演示此实例(用于查找所有标记并按照标记的帖子数量排序):
options = { :select => 'tags.*, COUNT(*) AS post_count',
:joins => 'INNER JOIN posts_tags', #Join table for 'posts' and 'tags'
:group => 'tags.id',
:order => 'post_count DESC' }
@count = Tag.count(options)
options = options.merge { :offset => (page - 1) * per_page, :limit => per_page }
@items = Tag.find(options)
Run Code Online (Sandbox Code Playgroud)
使用:select选项,Tag.count生成以下SQL:
SELECT count(tags.*, COUNT(*) AS post_count) AS count_tags_all_count_all_as_post_count, tags.id AS tags_id FROM `tags` INNER JOIN posts_tags GROUP BY tags.id ORDER …Run Code Online (Sandbox Code Playgroud) 基本上,该函数应该提供列表中列表的平均值.例:
lst = [[46, 27, 68], [26, 65, 80], [98, 56, 35], [98, 65, 0]]
average(lst)
>>> [47.0, 57.0, 63.0, 54.33333333333333]
Run Code Online (Sandbox Code Playgroud)
我的代码:
def average(l):
for i in range(len(l)):
for j in range(len(l[0])):
l[i] / l[j]
return l
Run Code Online (Sandbox Code Playgroud)
我的编码显示一个错误标志,上面写着"TypeError:/ support'和'list'"不支持的操作数类型.我不知道我做错了什么.
我有一个具有任意数量属性的ExpandoObject.我想将这些属性作为BsonDocument保存到MongoDB数据库.我尝试使用以下代码执行此操作:
private BsonDocument GetPlayerDocument(IPlayer player)
{
var ret = new BsonDocument();
ret.Add("FirstName", player.FirstName).
Add("LastName", player.LastName).
Add("Team", player.Team).
Add("Positions", new BsonArray(player.Positions));
foreach (var stat in (IDictionary<String, Object>)player.Stats)
{
ret.Add(stat.Key, stat.Value.ToBson());
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
但是,在对象上调用扩展方法ToBson()时,我收到以下异常:当State为:Initial时,不能调用WriteInt32.
我所知道的唯一的WrtieInt32是Marshall类的静态方法.我接近这个错吗?
当在页面上单击一个对象时,我正在从该对象收集数据,我需要将它传递给每个循环的jQuery,但是用我的JSON对象替换我拥有的数据.
这是我的HTML
<a href="#">Large</a>
Run Code Online (Sandbox Code Playgroud)
这是我的JSON数据
var sizeArray = {"Large":{"Red":[78],"Blue":[0],"Green":[0]}
Run Code Online (Sandbox Code Playgroud)
最后JS我遇到了问题
var size = $('a').text();
$.each(sizeArray.size, function(key, val){
if(this == 0){
alert(key);
}});
Run Code Online (Sandbox Code Playgroud)
我得到的只是在jQuery中说"a is undefined"的错误.我知道问题不在于jQuery,问题在于标有"sizeArray.size"的标准.如果我用大号替换单词大小比一切都有效.我只是无法弄清楚如何传递它!
我使用以下服务器端配置设置了一个openVPN隧道:
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
client-to-client
log-append /var/log/openvpn
group daemon
daemon
verb 3
Run Code Online (Sandbox Code Playgroud)
和客户端配置文件如下:
client
remote ******* 1194
dev tun
comp-lzo
ca ca.crt
cert client1.crt
key client1.key
route-delay 2
route-method exe
redirect-gateway def1
verb 3
Run Code Online (Sandbox Code Playgroud)
但是,在连接时,我可以毫无问题地ping 10.8.0.1,但我甚至无法访问Google.
我在Windows 7旗舰版中使用管理员权限运行Open VPN 2.1.4.服务器是Ubuntu 10.04安装,默认情况下启用TUN.
我能在日志中找到的唯一可疑部分是这样的: …
我一直试图解决这个问题几天了.我在学校遇到以下问题:
设A是一个小堆.操作HEAP-MODIFY(A,i,k)将节点i中的密钥更改为新值k,然后重新排列最小堆中的元素.为O元素最小堆提供在O(lgn)时间内运行的HEAPMODIFY的实现.
由于我们必须设计一个在O(lg(n))时间内运行的算法,我知道我不能只迭代每个元素.我有以下解决方案,但我不确定它是否正确.
HEAP-MODIFY(A,i,k):
A[i] = K
if A[i] < A[i/2]
while A[i] < A[i/2] and i > 1
exchange A[i], A[i/2]
i=i/2
else if A[i] > A[2*i]
while A[i] > A[2*1] and i <k
exchange A[i], A[2*i]
i = 2*1
Run Code Online (Sandbox Code Playgroud)
有关如何解决这个问题的任何建议?
我有一个我喜欢的master/ develop分支系统,但它带有一个基本规则.没有提交develop或master仅进行合并.这很棒,但最近我不小心对我的开发分支进行了一些更改/提交,它让我失去了焦油.
我考虑将这些提交的所有权转移develop到另一个已经存在的分支(我们称之为work),这是我应该首先处理的那个,但我决定让这一个去.相反,我想先解决这个问题.如何锁定一个分支,以便提交对传统的正常更改不起作用?
例如,如果您在"锁定"分支上进行了更改,那么您git add也不可能git commit -a.我认为技术上我要求锁定舞台,但你明白了.有什么想法吗?或者我会更好地学习git,我知道如何解决提交父问题?
您是否知道所有可能的NSNotifications的完整列表?请告诉我.谢谢.