小编dsc*_*scl的帖子

Oracle/SQL - 按日期按行动对项目进行分组

大家好我有一个'widget'表,其中包含以下列:widget,action,timestamp_.我们想要做的是在特定日期之间拉出每天被拒绝多次的所有小部件.所以这是一个示例表

widget      action      timestamp_
-------------------------------------------
type1       reject      2011-05-10 08:00:00
type1       reject      2011-05-10 09:00:00
type1       reject      2011-05-10 09:30:00
type2       reject      2011-05-11 09:30:00
type3       reject      2011-05-11 09:30:00
type1       reject      2011-05-11 09:30:00
type1       reject      2011-05-11 09:30:00
type2       reject      2011-05-12 10:30:00
type2       reject      2011-05-12 12:30:00
type3       reject      2011-05-12 12:30:00
Run Code Online (Sandbox Code Playgroud)

所以我期待以这两种方式之一看到结果....

在日期x和y之间,有两个小部件在一天内被多次拒绝

这将看到type1在一天内被拒绝多次,因为type2因此计数为:2

要么

显示每个小部件及其被拒绝的日期多次以及多少次.例..

widget      date            count
---------------------------------
type1       2011-05-10      3
type1       2011-05-11      2
type2       2011-05-12      2
Run Code Online (Sandbox Code Playgroud)

这可能是首选的输出......但是如何?

提前致谢!

sql group-by oracle9i

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

Oracle/SQL - 计算单个列中值的出现次数

好吧,我可能想出一个更好的头衔,但不知道如何说出来让我解释一下.

假设我有一个包含"CODE"列的表格.我的表中的每条记录都有"A","B"或"C",因为它在"CODE"列中的值.我想要的是计算我有多少'A','B'和'C'.

我知道我可以用3个不同的查询完成这个,但我想知道是否有办法只用1来做到这一点.

sql oracle group-by aggregate-functions

13
推荐指数
1
解决办法
5万
查看次数

XSLT - 循环遍历所有子节点

不要拍摄我只是这里的信使,但我有一些看起来像这样的xml

<XMLSnippet>
    <data>
        <stuff value="stuff" />
        <stuff value="more stuff" />
        <stuff value="even more stuff" />
        <widget value="you expected stuff didn't you" />
        <stuff value="great, we've got stuff again" />
    </data>
</XMLSnippet>
Run Code Online (Sandbox Code Playgroud)

我想循环遍历所有data子节点并输出以下内容

stuff
more stuff
even more stuff
you expected stuff didn't you
great, we've got stuff again
Run Code Online (Sandbox Code Playgroud)

如果重要,我只能使用XSLT 1.0

谢谢!

xml xslt-1.0

6
推荐指数
2
解决办法
5万
查看次数

向Google Gauges添加%符号

我正在使用Google Gauges,并希望在量表中的值后添加%符号.我的值显示没有百分比符号(整数0 - 100),但是当我开始尝试添加百分比符号时,事情变得很糟糕.

这是我尝试过的

// Format the data to include % symbol
var formatter = new google.visualization.NumberFormat(
    {suffix: '\u0025'}
    //{suffix: '%'}
    //{pattern: '#%'}

);
Run Code Online (Sandbox Code Playgroud)

所有三次尝试都显示正确的可视化,但对于实际值文本,我会得到不同的结果.

使用任一后缀方法,它会添加两个小数位:

6 => 6.00%

26 => 26.00%

等等

使用模式方法,它将值乘以100

6 => 600%

26 => 2600%

等等

有关如何简单地显示值和百分号的任何线索?

google-visualization

6
推荐指数
1
解决办法
3026
查看次数

使用XSLT排序

更新 - 底部的新代码

我试图找出如何使用sort函数从一些XML数据中提取最新记录.我是使用XSLT的新手,遇到了很多问题.这是我的数据的一个例子......

<content date="1/13/2011 1:21:00 PM">
    <collection vo="promotion">
        <data vo="promotion" promotionid="64526" code="101P031" startdate="1/7/2011 12:00:00 AM"/>
        <data vo="promotion" promotionid="64646" code="101P046" startdate="1/9/2011 12:00:00 AM"/>
    </collection>
</content>
Run Code Online (Sandbox Code Playgroud)

我想要做的是按降序顺序按升级ID排序数据,然后只通过HTML输出最大的升级.这是我尝试的方式

更新 - 这是仍然遇到问题的代码的最新版本.

<html><body>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"  encoding="UTF-8" />
    <xsl:template match="content/collection/data">
        <xsl:apply-templates>
            <xsl:sort select="promotionid" order="descending" data-type="number" />
        </xsl:apply-templates>
    </xsl:template>
    <xsl:template match="content/collection">
        <xsl:value-of select="data/@promotionid" />
    </xsl:template> 
</xsl:stylesheet>
</body></html>
Run Code Online (Sandbox Code Playgroud)

虽然这确实返回了我得到的结果是'64526'而不是'64646'.

有人可以帮忙吗?我也在网上看过你可以按多个字段排序的例子.现在可能值得注意,而不是后来问,我们可能想要通过startdate而不是promotionid来排序.我已经设法提出了用YYYY,MM和DD打破日期的代码,但是我不知道除了使用那些作为我的选择参数之外我怎么会开始使用它,但我不知道知道这是否真的有效.

Year
<xsl:value-of select="substring(substring-after(substring-after(data/@startdate,'/'),'/'),1,4)" />

Month
<xsl:value-of select="substring-before(data/@startdate,'/')" />

Day
<xsl:value-of select="substring-before(substring-after(data/@startdate,'/'),'/')" />
Run Code Online (Sandbox Code Playgroud)

提前感谢,我向我的新手XSLT技能道歉.

-------------------------------------------------- ----

在此处获得一些帮助后,代码已更改,但仍未按预期工作.这是代码......

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"  encoding="UTF-8" …
Run Code Online (Sandbox Code Playgroud)

xml sorting xslt xslt-1.0

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

Oracle - 了解no_index提示

我试图了解no_index如何实际加速查询并且无法在线查找文档来解释它.

例如,我的查询速度非常慢

select  * 
    from    <tablename>
    where   field1_ like '%someGenericString%' and 
            field1_ <> 'someSpecificString' and
            Action_='_someAction_' and 
            Timestamp_ >= trunc(sysdate - 2)
Run Code Online (Sandbox Code Playgroud)

我们的一位DBA能够通过这样做大大加快速度

select  /*+ NO_INDEX(TAB_000000000019) */ * 
    from    <tablename>
    where   field1_ like '%someGenericString%' and 
            field1_ <> 'someSpecificString' and
            Action_='_someAction_' and 
            Timestamp_ >= trunc(sysdate - 2) 
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么?我想弄清楚为什么这样可行,所以我可以看看我是否可以将它应用于另一个查询(这是一个连接)来加快它,因为它需要更长的时间才能运行.

谢谢!


**更新**以下是我对示例中表格的了解.

  • 这是一个'分区表'
  • TAB_000000000019是表中不是列的列
  • field1已编入索引

oracle hint query-optimization

4
推荐指数
1
解决办法
2万
查看次数

SQL/Oracle按特定日期的某种类型按字段分组数据

好吧,尝试构建一个单独的查询来节省我自己一大堆时间(而不是写大量的单独查询),但我甚至不知道如何开始这个.

我需要的是single day and type在上午8:00到晚上8:00之间按小时查看和分析行动计数.所以例如我有以下假表

TYPE_   ACTION_     TIMESTAMP_
------------------------------
A       processed   2010-11-19 10:00:00.000
A       processed   2010-11-19 10:46:45.000
A       processed   2010-11-19 11:46:45.000
A       processed   2010-11-19 12:46:45.000
A       processed   2010-11-19 12:48:45.000
A       pending     2010-11-19 11:46:45.000
A       pending     2010-11-19 11:50:45.000
A       pending     2010-11-19 12:46:45.000
A       pending     2010-11-19 12:48:45.000
B       pending     2010-11-19 19:48:45.000
B       pending     2010-11-19 21:46:45.000
.etc
Run Code Online (Sandbox Code Playgroud)

所以,如果我想查看所有记录

  • TYPE_ ='A'
  • 日期2010-11-19
  • 按行动每小时分组

我会看到这个结果

ACTION_ NUMOCCURENCES   RANGE
---------------------------------------------
processed  2                10:00:00 - 11:00:00
pending    0                10:00:00 - 11:00:00
processed  1                11:00:00 - …
Run Code Online (Sandbox Code Playgroud)

sql oracle grouping timestamp

4
推荐指数
1
解决办法
3966
查看次数

如何使这个简单的Groovy代码并发/多线程?

我有一个非常简单的groovy脚本,它通过JSON工作并执行一些操作.由于JSON记录和操作之间没有依赖关系,我希望我可以加快执行速度.鉴于此代码......

def recordJSON = new JsonSlurper().parseText(myFile.text)

recordJSON.each{ 
    do stuff here
}
Run Code Online (Sandbox Code Playgroud)

有没有办法线程执行或并行执行它们?我已经对这个主题做了一些阅读,但我是一个随便的编码器,他们似乎有点过头了.

groovy

4
推荐指数
1
解决办法
118
查看次数

Oracle - 来自单个列的唯一值,但返回其他列

我试图弄清楚如何从表列中拉取选择值,但也返回其他结果.例如,说我有下表

person  ..........
------------------
bob     ..........
mary    ..........
bob     ..........
sue     ..........
Run Code Online (Sandbox Code Playgroud)

我想要回来的是

bob     ..........
mary    ..........
sue     ..........
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不关心我实际上从其他列中接收bob的值,我该怎么做?


跟进问题,如果我关心怎么办?如果我有这张桌子怎么办?

person  type    color   ..........
----------------------------------
bob     0       blue    ..........
mary    1       green   ..........
bob     1       red     ..........
sue     0       yellow  ..........
Run Code Online (Sandbox Code Playgroud)

而这一次我又想要独一无二的人,但是当他的类型为0时我希望结果回到bob,所以对他来说我会看到

bob     0   blue    ..........
mary    1   green   ..........
sue     0   yellow  ..........
Run Code Online (Sandbox Code Playgroud)

谢谢!

sql oracle group-by distinct

2
推荐指数
1
解决办法
6648
查看次数

Oracle/SQL - 将来自"不相关"的不相关表的计数组合在一起

让我们假设我有两个表GOODBAD存储小部件生成的记录.我的桌子看起来像这样

Widget      Good
----------------
Widget A    Y
Widget A    Y
Widget B    Y

Widget      Bad
----------------
Widget A    Y
Widget B    Y
Run Code Online (Sandbox Code Playgroud)

我有这两个基本查询

select count(*) as good from table_good where widget = 'Widget A' and Good = 'Y'
select count(*) as bad from table_bad where widget = 'Widget A' and Bad = 'Y'
Run Code Online (Sandbox Code Playgroud)

这将导致两个这样的表

good
----
2

bad
---
1
Run Code Online (Sandbox Code Playgroud)

我想将这些组合成一个单独的查询,我将返回一个表格,其中包含一个看起来像这样的记录

good    bad
-----------
2       1
Run Code Online (Sandbox Code Playgroud)

有人能指出我如何做到这一点.我认为做一个联合并在其他表中设置假列会选择这样做,但我得到了正确的表模式,但有两个单独的记录.

谢谢!

sql oracle union count

2
推荐指数
1
解决办法
1714
查看次数