我正在尝试交叉联接两个表(客户和项目),这样我就可以创建按客户按项目的销售报告。我有 2000 个客户和 2000 个商品。
SELECT customer_name FROM customers; --Takes 100ms
SELECT item_number FROM items; --Takes 50ms
SELECT customer_name, item_number FROM customers CROSS JOIN items; Takes 200000ms
我知道这是 400 万行,但是有可能让它运行得更快吗?我想最终将其与这样的销售表结合起来:
SELECT customer_name, item_number, sales_total FROM customers CROSS JOIN items LEFT JOIN sales ON (customer.customer_name = sales.customer_name, item.item_number=sales.item_number);
销售表显然不会包含所有客户或所有商品,因此这里的目标是有一个报告,显示所有客户和所有商品以及已售出和未售出的商品。
我正在使用 PostgreSQL 8.4
我有以下SQL不起作用:
declare @id INT;
set @id=0;
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', CONVERT(DATETIME, '2015-01-18 14:03:13', 120);
select @id;
Run Code Online (Sandbox Code Playgroud)
并以这种方式更改它修复它:
declare @id INT;
set @id=0;
declare @p_valid_until datetime;
set @p_valid_until=CONVERT(DATETIME, '2015-01-18 14:03:13', 120)
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', @p_valid_until;
select @id;
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
干杯,简
我有以下代码在我的应用程序中呈现文本,首先我获取世界中的鼠标坐标,然后使用这些坐标将我的文本放置在世界中,因此它将跟随我的鼠标位置:
编辑:在代码示例中添加了 buildfont() 函数:
GLvoid BuildFont(GLvoid) // Build Our Bitmap Font
{
HFONT font; // Windows Font ID
HFONT oldfont; // Used For Good House Keeping
base = glGenLists(96); // Storage For 96 Characters
font = CreateFont( -12, // Height Of Font
0, // Width Of Font
0, // Angle Of Escapement
0, // Orientation Angle
FW_NORMAL, // Font Weight
FALSE, // Italic
FALSE, // Underline
FALSE, // Strikeout
ANSI_CHARSET, // Character Set Identifier
OUT_TT_PRECIS, // Output Precision
CLIP_DEFAULT_PRECIS, …Run Code Online (Sandbox Code Playgroud) 我有一个像下面的xml片段
<Detail uid="6">
<![CDATA[
<div class="heading">welcome to my page</div>
<div class="paragraph">this is paraph</div>
]]>
</Detail>
Run Code Online (Sandbox Code Playgroud)
我希望能够改变
<div class="heading">...</div> to <h1>Welcome to my page</h1>
<div class="paragraph">...</div> to <p>this is paragraph</p>
Run Code Online (Sandbox Code Playgroud)
你知道我怎么能在xslt 1.0中做到这一点
我知道每个正在运行的进程都在虚拟内存中有与之关联的页面,其中很少会根据需要加载到主内存中.我也知道程序将有一个堆栈,也有一个堆来分配动态内存.这是我的问题.
你能推荐一本涵盖这些东西的好书吗?
运行此代码时,将生成一个窗口但不是指定的维度.这有什么问题?
import javax.swing.*;
import java.awt.*;
public class Windowing {
void JFrame(){
JFrame frames = new JFrame("Total recall");
frames.setSize(1000,8000);
frames.setVisible(true);
frames.pack();
//Buttons push = new Buttons();
//((Buttons) push).buttons();
JTextField wager = new JTextField(1);
wager.setSize(100,200);
wager.setVisible(true);
wager.setLocation(100, 200);
frames.add(wager);
//frames.add(push);
}
}
Run Code Online (Sandbox Code Playgroud) 列出您将需要的每个单独的包装(参见#1)或者从包装中导入所有内容(参见#2)会更好吗?
import java.awt.image.ColorModel;
import java.awt.image.ComponentColorModel;
import java.awt.image.ColorConvertOp;
Run Code Online (Sandbox Code Playgroud)
import java.awt.*;
Run Code Online (Sandbox Code Playgroud) 假设我有一个点数组,形成一条线和一个文本.我怎样才能沿着这条线绘制文本
- (void)drawRect:(CGRect)rect
Run Code Online (Sandbox Code Playgroud)
一个UIView?
我能够毫无问题地绘制路径.是否存在我忽略的标准方法或允许我沿着该路径绘制文本的框架?理想情况下,我只想使用QuartzCore/CoreGraphics来做这件事.
我尝试计算每个角色的宽度并旋转每个角色.这种作品,但我想知道是否有更优雅的方法.
cocoa-touch core-graphics objective-c quartz-graphics uiview
我正在构建一个生成动态xml的工具.因此,我的模型具有非常通用的名称:
Project
has_many :Groups
Group
has_many :Items
has_many :Groups
belongs_to :Project
Item
has_many :Params
belongs_to :Group
Param
belongs_to :Project
belongs_to :Group
belongs_to :Item
Run Code Online (Sandbox Code Playgroud)
因此,当我从项目控制器构建xml时,项目节点名称是xml的根节点.但我不希望它被称为"项目".我希望节点是@ project.params ['name']值的任何值.
我遇到的问题是,构建器的结构使这很困难...当我这样做时:
xml.project do
~some code
end
Run Code Online (Sandbox Code Playgroud)
...它始终将"项目"创建为根节点名称.我找不到一种方法来覆盖它以使用不同的名称.我希望以下内容能起作用:
xml.send(@project.params.name) {
...some code
}
Run Code Online (Sandbox Code Playgroud)
..但显然不起作用.所以我基本上试图找到一种方法来对我的params模型中配置的元素名称进行别名.任何建议将不胜感激.
我有一个带有Web前端,WCF Windows服务后端的.NET应用程序.应用程序非常简单 - 需要一些用户输入,将其发送到服务.该服务执行此操作 - 获取输入(Excel电子表格),提取数据项,检查SQL DB以确保项目尚不存在 - 如果它们不存在,我们向第三方数据供应商发出实时请求并检索结果,将它们插入数据库.它沿途做了一些记录.
我有一个Job类,有一个公共ctor和公共Run()方法.ctor接受所有参数,Run()方法执行上述所有逻辑.每个逻辑功能部分被拆分为一个单独的类 - IParser执行文件解析,IConnection执行与数据供应商的交互,IDataAccess执行数据访问等.Job类具有这些接口的私有实例,并使用DI构建默认情况下实际实现,但允许类用户注入任何接口.
在实际代码中,我使用默认的ctor.在我对Run()方法的单元测试中,我使用通过NMock2.0创建的所有模拟对象.此Run()方法本质上是此应用程序的"顶级"功能.
现在这是我的问题/问题:这个Run()方法的单元测试很疯狂.我有三个模拟对象,我发送到ctor,每个模拟对象设置自己的期望.最后,我验证.我有一些Run方法可以采用的不同流程,每个流程都有自己的测试 - 它可以找到数据库中的所有内容,而不是向供应商发出请求......或者可以抛出异常并且作业状态可以被设置为'失败'...或者我们可以得到我们没有数据并且需要发出供应商请求的情况(因此需要进行所有这些函数调用).
现在 - 在你对我大喊并说'你的Run()方法过于复杂之前!' - 这个Run方法只有50行代码!(它确实调用了一些私有函数;但整个类只有160行).由于所有"真实"逻辑都是在此类声明的接口中完成的.但是,这个函数最大的单元测试是80行代码,有13个调用Expect.BLAH().. _
这使得重新考虑了巨大的痛苦.如果我想改变这个Run()方法,我必须编辑我的三个单元测试并添加/删除/更新Expect()调用.当我需要重构时,我最终花费更多时间创建模拟调用,而不是实际编写新代码.在这个功能上做真正的TDD使得它变得更加困难,如果不是不可能的话.它让我觉得它根本不值得对这个顶级函数进行单元测试,因为实际上这个类没有做太多逻辑,它只是将数据传递给它的复合对象(它们都是完全单元测试的,不需要嘲讽).
那么 - 我是否应该费心去测试这个高级功能呢?这样做我获得了什么?或者我在这里完全滥用mock/stub对象?也许我应该废弃这个类的单元测试,而只是进行自动化集成测试,它使用对象的实际实现和Asserts()对SQL查询来确保存在正确的最终状态数据?我在这里错过了什么?
编辑:这是代码 - 第一个函数是实际的Run()方法 - 然后我的五个测试测试所有五个可能的代码路径.我因为NDA原因改变了一些,但一般的概念仍然存在.你对我如何测试这个功能有什么看错了,有什么改变的建议让它变得更好?谢谢.
java ×2
xml ×2
builder ×1
c++ ×1
cdata ×1
cocoa-touch ×1
coding-style ×1
cross-join ×1
heap ×1
jframe ×1
kernel ×1
mocking ×1
objective-c ×1
opengl ×1
postgresql ×1
raster ×1
ruby ×1
sql-server ×1
stack ×1
swing ×1
tdd ×1
uiview ×1
unit-testing ×1
xslt ×1