小编Bil*_*ard的帖子

我可以在SQL中执行max(count(*))吗?

这是我的代码:

    select yr,count(*)  from movie
join casting on casting.movieid=movie.id
join actor on casting.actorid = actor.id
where actor.name = 'John Travolta'
group by yr
Run Code Online (Sandbox Code Playgroud)

这是问题所在

这是"约翰特拉沃尔塔"最繁忙的几年.显示他每年制作的电影数量.

这是表结构:

movie(id, title, yr, score, votes, director)
actor(id, name)
casting(movieid, actorid, ord)
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

yr  count(*)
1976    1
1977    1
1978    1
1981    1
1994    1
etcetc
Run Code Online (Sandbox Code Playgroud)

我需要得到count(*)最大的行.

我该怎么做呢?

sql

66
推荐指数
4
解决办法
25万
查看次数

哪个更快,哈希查找或二进制搜索?

当给定一组静态对象(在某种意义上是静态的,一旦加载它很少会发生变化),需要重复的并发查找以及最佳性能,哪个更好,一个HashMap或一个二进制搜索使用一些自定义比较器的数组?

答案是对象或结构类型的函数吗?哈希和/或平等功能表现?哈希的独特性?清单大小? Hashset尺寸/尺寸?

我正在看的集合的大小可以是500k到10m之间的任何地方 - 这些信息很有用.

虽然我正在寻找一个C#答案,但我认为真正的数学答案不在于语言,所以我不包括那个标签.但是,如果需要注意C#特定的事情,那么需要该信息.

algorithm lookup hash hashmap binary-search

64
推荐指数
8
解决办法
5万
查看次数

了解CUBE和ROLLUP之间的差异

我的任务要求我找出"每个日期写了多少发票?"

我有点陷入困境,并向我的教授寻求帮助.她通过电子邮件向我发送了一个问题,回答了这个问题,"每种类型和版本的炉子已经建成了多少?对于挑战但没有额外的积分,包括炉灶的总数."

这是她发给我的查询:

SELECT STOVE.Type + STOVE.Version AS 'Type+Version'
, COUNT(*) AS 'The Count'
FROM STOVE
GROUP BY STOVE.Type + STOVE.Version WITH ROLLUP;
Run Code Online (Sandbox Code Playgroud)

所以,我调整了那个查询,直到满足了我的需求.这就是我想出的:

SELECT InvoiceDt
, COUNT(InvoiceNbr) AS 'Number of Invoices' 
FROM INVOICE 
GROUP BY InvoiceDt WITH ROLLUP 
ORDER BY InvoiceDt ASC;
Run Code Online (Sandbox Code Playgroud)

它返回了我想要的以下结果.

无论如何,我决定阅读ROLLUP条款,并从微软的一篇文章开始.它说ROLLUP子句类似于CUBE子句,但是它通过以下方式区别于CUBE子句:

  1. CUBE生成一个结果集,显示所选列中所有值组合的聚合.
  2. ROLLUP生成一个结果集,显示所选列中值的层次结构的聚合.

所以,我决定用CUBE替换我的查询中的ROLLUP,看看会发生什么.他们产生了相同的结果.我猜这就是我感到困惑的地方.

看来,如果你使用的是我在这里的查询类型,那么这两个条款之间没有任何实际的区别.是对的吗?或者,我不明白什么?当我读完微软的文章时,我曾想过,使用CUBE子句我的结果应该是不同的.

sql t-sql sql-server sql-server-2008

64
推荐指数
3
解决办法
9万
查看次数

命令行程序创建网站截图(在Linux上)

在Linux上创建网站截图的好命令行工具是什么?我需要在没有人工交互的情况下自动生成网站的屏幕截图.我找到的唯一工具是khtml2png,但我想知道是否有其他不基于khtml(即有良好的JavaScript支持,......).

linux screenshot

63
推荐指数
4
解决办法
9万
查看次数

如何将多个参数作为数组传递给ruby方法?

我有一个像这样的rails helper文件中的方法

def table_for(collection, *args)
 options = args.extract_options!
 ...
end
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样调用这个方法

args = [:name, :description, :start_date, :end_date]
table_for(@things, args)
Run Code Online (Sandbox Code Playgroud)

这样我就可以根据表单提交动态传入参数.我无法重写该方法,因为我在太多地方使用它,我怎么能这样做?

ruby arrays methods arguments ruby-on-rails

63
推荐指数
2
解决办法
9万
查看次数

在Java中将数字提升到一个幂

这是我的代码.由于某种原因,我的BMI计算不正确.当我在计算器上检查输出时:(10/((10/100)^2)))我得到1000,但在我的程序中,我得到5.我不确定我做错了什么.这是我的代码:

import javax.swing.*;

public class BMI {
    public static void main(String args[]) {
        int height;
        int weight;
        String getweight;
        getweight = JOptionPane.showInputDialog(null, "Please enter your weight in Kilograms");
        String getheight;
        getheight = JOptionPane.showInputDialog(null, "Please enter your height in Centimeters");
        weight = Integer.parseInt(getweight);
        height = Integer.parseInt(getheight);
        double bmi;
        bmi = (weight/((height/100)^2));
        JOptionPane.showMessageDialog(null, "Your BMI is: " + bmi);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

63
推荐指数
4
解决办法
35万
查看次数

Java方法注释如何与方法重写一起使用?

我有一个父类Parent和一个子类Child,由此定义:

class Parent {
    @MyAnnotation("hello")
    void foo() {
        // implementation irrelevant
    }
}
class Child {
    @Override
    foo() {
        // implementation irrelevant
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我获得Method参考Child::foo,childFoo.getAnnotation(MyAnnotation.class)会给我@MyAnnotation吗?还是会的null

我更感兴趣的是注释如何或是否与Java继承一起使用.

java inheritance overriding annotations

63
推荐指数
3
解决办法
3万
查看次数

使用ElementTree示例在Python中解析XML

我很难找到一个如何使用Element Tree在python中解析XML的基本示例.根据我的发现,这似乎是用于解析XML的最简单的库.以下是我正在使用的XML示例:

<timeSeriesResponse>
    <queryInfo>
        <locationParam>01474500</locationParam>
        <variableParam>99988</variableParam>
        <timeParam>
            <beginDateTime>2009-09-24T15:15:55.271</beginDateTime>
            <endDateTime>2009-11-23T15:15:55.271</endDateTime>
        </timeParam>
     </queryInfo>
     <timeSeries name="NWIS Time Series Instantaneous Values">
         <values count="2876">
            <value dateTime="2009-09-24T15:30:00.000-04:00" qualifiers="P">550</value>
            <value dateTime="2009-09-24T16:00:00.000-04:00" qualifiers="P">419</value>
            <value dateTime="2009-09-24T16:30:00.000-04:00" qualifiers="P">370</value>
            .....
         </values>
     </timeSeries>
</timeSeriesResponse>
Run Code Online (Sandbox Code Playgroud)

我能够使用硬编码方法做我需要的事情.但我需要我的代码更有活力.这是有效的:

tree = ET.parse(sample.xml)
doc = tree.getroot()

timeseries =  doc[1]
values = timeseries[2]

print child.attrib['dateTime'], child.text
#prints 2009-09-24T15:30:00.000-04:00, 550
Run Code Online (Sandbox Code Playgroud)

以下是我尝试过的一些事情,其中​​没有一个有效,报告说他们找不到时间序列(或我尝试过的任何其他内容):

tree = ET.parse(sample.xml)
tree.find('timeSeries')

tree = ET.parse(sample.xml)
doc = tree.getroot()
doc.find('timeSeries')
Run Code Online (Sandbox Code Playgroud)

基本上,我想加载xml文件,搜索timeSeries标记,并遍历值标记,返回dateTime和标记本身的值; 我在上面的例子中所做的一切,但不是硬编码我感兴趣的xml部分.有人能指出我的一些例子,或者给我一些关于如何解决这个问题的建议?


谢谢你的帮助.使用以下两个建议对我提供的示例文件起作用,但是,它们不能在完整文件上工作.这是我使用Ed Carrel的方法从真实文件中得到的错误:

 (<type 'exceptions.AttributeError'>, AttributeError("'NoneType' object has no attribute 'attrib'",), <traceback object at 0x011EFB70>)
Run Code Online (Sandbox Code Playgroud)

我认为在它不喜欢的真实文件中有一些东西,所以我逐渐删除了东西直到它工作.以下是我更改的行: …

python xml elementtree

62
推荐指数
2
解决办法
15万
查看次数

如何在Java中生成随机BigInteger值?

我需要生成0(包括)到n(不包括)范围内的任意大的随机整数.我最初的想法是调用nextDouble并乘以n,但是一旦n大于2 53,结果将不再均匀分布.

BigInteger 有以下构造函数可用:

public BigInteger(int numBits, Random rnd)
Run Code Online (Sandbox Code Playgroud)

构造一个随机生成的BigInteger,均匀分布在0到(2 numBits - 1)的范围内,包括0和(2 numBits - 1).

如何使用它来获得0到n范围内的随机值,其中n不是2的幂?

java random biginteger

62
推荐指数
3
解决办法
6万
查看次数

仅显示没有整个目录路径的文件名

ls /home/user/new/*.txt打印该目录中的所有txt文件.但是它打印输出如下:

[me@comp]$ ls /home/user/new/*.txt
/home/user/new/file1.txt    /home/user/new/file2.txt    /home/user/new/file3.txt
Run Code Online (Sandbox Code Playgroud)

等等.

我想运行ls命令不是从/home/user/new/目录运行,因此我必须提供完整的目录名称,但我希望输出只作为

[me@comp]$ ls /home/user/new/*.txt
file1.txt    file2.txt    file3.txt 
Run Code Online (Sandbox Code Playgroud)

我不想要整个路径.只需要文件名.这个问题必须使用ls命令解决,因为它的输出是针对另一个程序的.

unix directory shell ls

62
推荐指数
8
解决办法
13万
查看次数