假设我在mysql或任何其他数据库中有一个Table-A,我想使用以下SQL找到每列中出现的每个值的计数: 表A: Col1 Col2 Col3
Row1 A C E
Row2 A C F
Row3 B D G
select Col1, count(*) from Table-A group by 1, order by 2 desc;
select Col2, count(*) from Table-A group by 1, order by 2 desc;
select Col3, count(*) from Table-A group
我的应用程序使用一般形式执行许多查询:
SELECT <aggregate-functions>
FROM <table-name>
WHERE <where-clause>
GROUP BY <group-by column list>
我想知道有多少记录参与了聚合结果集(换句话说,有多少记录与WHERE子句中的条件匹配),因为SELECT子句和GROUP-BY子句中的聚合函数都是隐藏的。我知道我可以使用相同的WHERE子句执行一个简单的SELECT COUNT(*)来获得这个数字,但是如果可能的话,我希望避免第二次查询。是否有SQL Serv
有没有更有效的方式来执行下面的SQL?
我想选择前50个结果,但我还想设置一个变量来告诉我,如果没有前50个结果,我是否会得到更多的结果
DECLARE @MoreExists BIT
SET @MoreExists = 0
DECLARE @Count INT
SELECT @Count = Count(*)
FROM MyTable WHERE ... --some expensive where clause
IF @Count > 50
SET @MoreExists = 1
SELECT TOP 50 Field1, Field2, ...
FR
考虑一下这个示例表"Table1“。
Col1 Col2
A 1
B 1
A 4
A 5
A 3
A 2
D 1
B 2
C 3
B 4
我试图从Col1中获取这些值,该值对应于所有值(在本例中为1、2、3、4、5)。在这里,查询的结果应该返回'A‘,因为在Col2中,其他所有的值都没有1、2、3、4、5。
注意,Col2中的值是由查询中的其他参数决定的,它们总是返回一些数值。从这些值中,查询需要从Col1中获取与Col2中所有值对应的值。例如,Col2中
我有一个用例
a 3
a 4
a 5
a 6
a 5
b 3
b 5
b 3
如何获得这样的输出
a 4
a 5
b 5
b 3
为a和b选择高号,但只有2行
这就是我现在写的查询,好像不起作用
SELECT id, barcode, actualsku, inventorycount
FROM ( SELECT pallet.id AS id,
pallet.barcode AS barcode,
inventoryunit.sku
以下查询用于计算单个查询中两个不相关的表中的行数。
With t1 as (Select 1
Union Select 2
Union Select 3),
t2 as (Select 'A'
Union Select 'B')
Select (Select count(*) from t1), (Select count(*) from t2)
有没有更好的方法来避免select查询中的两个select语句。
输出应为
3 2
任何特定于Postgres的构造也可以
我的Postgres数据库里有两张桌子。
vehicles
- veh_id PK
- veh_number
positions
- position_id PK
- vehicle_id FK
- time
- latitude
- longitude
.... few more fields
我在每个车辆的位置表中有多个条目。我想得到所有的车辆位置,但最新的(其中的时间场是最新的)。我尝试过这样的查询:
SELECT *
FROM positions
GROUP BY vehicle_id
ORDER BY time DESC
但有个错误:
column "positions
我在编写一个查询时遇到了一个问题,该查询将组聚集在一个列中,然后按数字选择其中一个组。一个不错的人(@sstan)给了我这个:
select your_col
from (select your_col,
row_number() over (order by your_col) as rn
from your_table
group by your_col)
where rn = 2
而且它是有效的。但是,我的查询似乎需要考虑其他列。现在,它看起来是这样的:
select MAINCOL, sum(some_col+o
我有一个正在执行的SELECT查询,它有一个MAX()列和一个GROUP BY子句,除了需要返回给客户机的这个查询的结果之外,我还需要返回所有结果的总数。
基本上我的问题是这样的:
SELECT unique_id, col1, col2, MAX(col3) as col3
FROM tbl
GROUP BY col1, col2
它通常也会有一个WHERE子句。
unique_id是表的主键。
在将此数据返回给客户机时,我还指定了LIMIT和OFFSET子句来限制一次检索结果的数量。我的问题是,如果上面的查询没有LIMIT和OFFSET子句,我还需要显示它将产生的结果的总数,这样客户机就可
下面的查询由2列返回重复行,但它返回带空值的行。对于这两个列,我想返回带NULL的行。另外,如何用旧ID禁用重复记录?
With deactivaterows as (
Select t.*, count(*) over (partition by col1, col2) as cnt from TABLE1 t)
Select * from deactivaterows where cnt > 1;
给出一个具有4列的表myTable,例如Col1、Col2、Col3和Col4
A X 5 B
A Y 5 C
A X 7 D
A Y 3 E
A X 7 F
我需要为每对col3找到最常见的(col1, col2)。
因此,此示例的结果将是:
A X 7 D/F -- D or F
A Y 5/3 C/E -- It can be 5 and C or 3 and E
所以我写了一个类似这样的查询:
select Col1,Col2,Col3
from myTable M
group by Col1,Col2,Col3
having Col3 =
(select C
我有两列col1和col2,表名为table。理想情况下,表中的数据应该如下所示:
col1 | col2
A null
null B
null A
C null
如果存在两个列都是null的行,或者这两个列都有值,则数据将出现错误。因此,例如,如果有一行看起来像
col1| col2
A B
或
col1 | col2
null null
我可以使用像select count(*) from table where col1 IS NULL select count(*) from table where col2 IS NUL
这是我的观点
Create View [MyView] as
SELECT ROW_NUMBER() OVER( ORDER BY col1 ) AS id, col1, col2, col3
FROM(
Select col1, col2, col3 From Table1
Union All
Select col1, col2, col3 From Table2 ) AS MyResults
GO
当我运行视图时,行号与使用where条件时的行号不匹配。例如,我在col1中获得了20条记录,其中select * from myview的行号为15。但是,当我使用筛
对于分页目的,我需要运行一个带有LIMIT和OFFSET子句的查询。但是,我还需要一个不带LIMIT和OFFSET子句的查询返回的行数。
我想跑:
SELECT * FROM table WHERE /* whatever */ ORDER BY col1 LIMIT ? OFFSET ?
和:
SELECT COUNT(*) FROM table WHERE /* whatever */
在同一时间。有没有办法做到这一点,特别是让Postgres优化它,这样它比单独运行更快?
有时,我希望执行连接,从而取一列中的最大值。为此,我必须执行max()和groupby-这会阻止我从作为max的行中检索其他列(因为它们不包含在GROUP BY或聚合函数中)。
为了解决这个问题,我将最大值连接回原始数据源,以获得其他列。但是,我的问题是,这有时会返回多行。
所以,到目前为止,我得到了一些类似的东西:
SELECT * FROM
(SELECT Col1, Max(Col2) FROM Table GROUP BY Col1) tab1
JOIN
(SELECT Col1, Col2 FROM Table) tab2
ON tab1.Col2 = tab2.Co
我有一张桌子,用来存储关于糖果店在所有地点销售的商品的信息。它出售糕点、华夫饼、冰淇淋、糖果等。
我需要从桌子上得到这些信息。
是每个地点售出最多的商品,以及在这些地点销售的商品总数。
下面是表格的结构
Column | Type | Modifiers
----------------+-----------------------------+-----------
id | integer |
date | timestamp wi