假设我们有三列: A、B和C。
我想把结果过滤如下:
对于>1行(多于1)行,A和B的值相同(重复),C的值总是不同的。
在所附图像中,所选值将满足上述条件。
我试过的是:
SELECT
a.notation as A, a.gene as B, b.id as C
FROM
`db-dummy`.sgdata c
join `db-dummy`.g_info a on a.rec_id = c.gen_id
join `db-dummy`.spec_data b on b.rec_id = c.spec_id GROUP BY A, B HAVING
我的SQL查询有问题。我想为用户显示最后一条消息。所以,我使用了"GROUP“方法,但是他没有显示最后一条消息。
这是我的第一个查询:
SELECT `messages`.*, `conversations`.*
FROM `messages` JOIN `conversations` ON `conversations`.`cNUM` = `messages`.`mCONV_NUM`
WHERE `cUSER2` = '2'
GROUP BY `messages`.`mCONV_NUMn`
我试着遵循这个主题: (和很多其他的)
和我有一个:
SELECT `m
因此,第一个SQL返回零行:
SELECT b.b_id
FROM `buy` b
INNER JOIN `buy_multiples` AS bm
ON b.b_id = bm.b_id
AND b.buy_status IN (2)
WHERE bm.`option_type` = 'area_id'
AND bm.selected_option_key IN (10)
AND bm.`option_type` = 'bzips'
AND bm.selected_option_key IN (370
如何在SQL Server的Northwind数据库中计算每个地区的总销售额?我已经运行了以下查询:
1)
select sum( od.Quantity * od.UnitPrice ), v.rid from
Orders o , [Order Details] od , (select et.EmployeeID eid, r.RegionID rid from region r, territories t , EmployeeTerritories et
where r.RegionID = t.RegionID an
我目前有两个版本的SQL查询,我正在尝试了解哪一个在性能和成本等方面可能更好。
这是wrt这个问题:
select department_salary.pay_month, department_id,
case
when department_avg>company_avg then 'higher'
when department_avg<company_avg then 'lower'
else 'same'
end as comparison
from
(
select department_id,
到目前为止,我有这样的看法:
var query = (from g in this.Context.Groups
where g.ID == groupID &&
g.TaxId == groupTaxId
select g.Group_K);
然后,我要添加的SQL查询如下:
select zipCode
from ADDRESSES
where ADDRESS_K in
(select ADDRESS_K
from GROUPADDRESS
where GROUP_K = "is in Group
我有以下SQL select:
SELECT s.*,
GROUP_CONCAT(CONCAT_WS(':', m.type, m.id, m.filename) SEPARATOR ',') AS multimedia,
GROUP_CONCAT(CONCAT_WS(':', c.id) SEPARATOR ',') AS categories
FROM sections s
LEFT JOIN sections_multimedia sm
ON s.id = sm.section_i
当我尝试使用以下SELECT语句时:
SELECT [lots of columns]
FROM Client, Customer, Document, Group
WHERE [some conditions]
GROUP BY Group.id
SQL Server报告我选择的列既不是GROUP BY语句的一部分,也不是聚合函数的一部分。我使用GROUP BY是错误的吗?我应该用什么来代替呢?
快把我逼疯了!有人知道如何编写一些SQL来返回序列数字组中的MIN和MAX日期吗?请看下面的屏幕截图。
,这是我使用的SQL:
SELECT
num
, empid
, orderdate
FROM
(SELECT
ROW_NUMBER() OVER (ORDER BY orderdate) AS Num
, empid
, orderdate
FROM TSQL.Sales.Orders)T1
WHERE empid = 4
,这是它返回的内容:
我想要做的是根据num列获得每组序列数字的Min和最大值日期。例如,:第一组是num 3,4,5和6,所以Min日期是
我有一个src和两个lkps。在第二个lkp中,我想使用lkp override.In,第二个lkp需要连接三个表。
sql查询
SELECT IPF.ID,listagg(country_name,',') within group(order by(id))
FROM
Table1 RG INNER JOIN
table2 IPF ON
RG.ID=IPF.ID
INNER JOIN table3 DR
ON
DR.SDL_ID=RG.SDL_ID
group by id;
告诉我sql1和sql2的区别:
sql1:
select count(1)
from table_1 a
inner join table_2 b on a.key = b.key where a.id in (
select id from table_1 group by id having count(1) > 1
)
sql2:
select sum(a) from (
select count(1) as a
from table_1 a
inner join table_2 b on a.key = b.key group by a.id having c
我想在我的数据库里找到最受欢迎的照片。有照片,喜欢,用户的桌子。我试着找出最受欢迎的照片和用户谁发布的图片,只有喜欢和用户,并得到了一个错误。
SELECT
users.username,
photo_id,
COUNT(*) AS most_liked
FROM
likes
INNER JOIN users ON users.id=likes.user_id
GROUP BY
photo_id
ORDER BY
most_liked DESC
LIMIT
1;
错误1055 (42000):SELECT列表的表达式#1不是按
我正在使用mysql。下面是我的sql
SELECT LIMIT 1
users.id,
COUNT(events.id) AS events_count
FROM
INNER JOIN 'events' ON users.id = events.user_id
GROUP BY
users.id
ORDER BY
COUNT(events.id) DESC
下面是我得到的错误
Mysql2::Error: You have an error in your SQL syntax; check the manual that co
好的,我知道当您使用group by执行SQL命令时,不能在没有聚合的情况下拉取特定字段,但在我看来,如果您在保证唯一的主键上进行聚合,那么应该有一种方法来拉取该列的其他行。如下所示:
SELECT Max(id),
foo,
bar
FROM mytable
GROUP BY value1,
value2
所以ID保证是唯一的,所以foo和bar的值正好是1,有没有办法生成这样的查询呢?
我已经尝试过了,但是本例中的MyTable有几百万行,并且运行时是不可接受的:
SELECT *
FROM mytable
WHER
我有一个SQL Server查询,我写这个查询是为了找到RENTAL表中记录最少的电影标题。
当运行时,它返回一个结果集,该结果集与我自己执行子查询获得的结果集相同。
换句话说,它返回所有电影标题及其对应的RentalCount,而不是以最小的RentalCount返回单个电影。
SELECT B.Title, MIN(B.RentalCount) AS RentalCount
FROM (
SELECT Movie.Title, Count(*) AS RentalCount
FROM Rental
JOIN Dvd ON Rental.RentalID=Dvd.Dv
我有以下疑问: --Invoice summary by class
SELECT HHICUSN AS "Account", FFDCNMB AS "Name", HHICLSN AS "Class", FFBSDSC AS "Description",
--SUM(HHIQYSA),
CASE HHIBCCD WHEN 'Y' THEN SUM(HHIQYSA) ELSE 0 END AS "Piece",
CASE HHIBCCD WHEN '
我有一个数据库模式,它看起来像这样:
create table user (id int, name varchar(32));
create table group (id int, name varchar(32));
create table group_member (group_id int, user_id int, flag int);
我想要编写一个查询,允许我执行以下操作:
给定有效的用户id (UID),获取与指定用户id (UID)在同一组中且具有group_member.flag=3的所有用户的id。
而不仅仅是SQL。我想学习如何像一个数
我有这个PL/SQL函数:
Create Or Replace Function mostMealOrders
Return varchar
Is
name_phone varchar(200) := ' ';
Cursor c1 Is
Select acctid
From MealOrder Natural Join Customer
Group By acctid
Having Count(*) >= All (Select Count(*)
我试图使用select作为列名来存储get总成员,但是我没有成功地获得要使用的正确sql语句的解决方案。这是我使用过的数据库表结构和sql。
Sql
SELECT
name,
SELECT
(
(COALESCE(SUM(adult),0) + COALESCE(SUM(elders),0))
) as total
FROM members
LEFT JOIN company
ON company.comp
我有三个表:项目,组件,供应商。每个列都有id列、城市列和其他列。
我想要做的是数一数每个城市有多少项目、组件和供应商。
我试过的是:
SELECT p.city, COUNT(p.idp), COUNT(c.idc), COUNT(s.idf) FROM
Projects p, Components c, Suppliers s
GROUP BY p.city
在运行这个查询之后,我得到了不正确的值,几乎所有值都是相同的,如下所示:
我只为每个城市储存了一个项目,一个或两个组件和1-3个供应商,所以这些都不是预期的结果。
在寻找一些类似的解决问题之后,我想出了一段代码
SELECT p
考虑一个包含列empid、deptid和salary的表EMPLOYEE,以提取薪水高于平均值的所有员工。所在部门的 我尝试了两种方式--第一种方式是: Select empid, deptid, salary
From employee
Group by empid, deptid, salary
Having salary > (Select avg(salary) From employee) 这返回了正确的输出。 但 Select empid, deptid, salary, avg(salary) average
From employee
Group by empid, d
我想使用GROUP BY聚合下面的SQL查询,但我不知道如何将内部SELECT包含到GROUP BY子句中。有可能像GROUP BY PEOPLE.NAME, PEOPLE.ADDRESS, CITY那样做吗?
SELECT PEOPLE.NAME AS NAME,
PEOPLE.ADDRESS AS ADDRESS,
(SELECT PEOPLE.CITY
FROM ...
WHERE ...) AS CITY
FROM MYSCHEMA.PEOPLE PEOPLE
GROUP BY PEOPLE.NAME, PEOPLE.ADDRESS
我正在尝试获得与每个客户相关联的所有行的总和,并对它们进行联接。 但是,我发现如果不存在任何行,则会完全忽略客户。 我更希望和是零。我该如何做到这一点。 下面是SQL语句: SELECT
Id, DebitSum
FROM
Customers
JOIN
(SELECT
SUM(Amount) DebitSum, CustomerId
FROM
Purchases
WHERE
Completed IS NULL
GROUP BY
CustomerId) p O
在MySQL 5.7中,我分别有以下orders和transactions表。我想得到每个产品的最大transaction.timestamp,orders.status是“完成”的。
我使用了以下查询:
SELECT
MAX(timestamp),
product,
idorder,
idtransaction,
order_name
FROM
transaction left join orders
ON
transaction.order_id=orders.idorder
WHERE
statu
我在Select中有一些单独的SQL语句如下:
Select HiveNumber, HiveRace, QueenAge, HiveType From tHives
和
Select HiveNumber, SUM(FeedingAmount) AS TotalFeeding From tHivesFeeding
Group By HiveNumber
和
Select HiveNumber, HoneyStatus, EggLayingStatus, Body, Comb, VisitDetails
From tHivesDetails
Where VisitDate in
因此,我获得了大量的缓慢SQL查询,并将其缩小为一个慢速子查询,因此我想将其重写为一个JOIN。但我被困住了。(由于MAX和GROUP BY)
SELECT *
FROM local.advice AS aa
LEFT JOIN webdb.account AS oa ON oa.shortname = aa.shortname
WHERE aa.aa_id = ANY (SELECT MAX(dup.aa_id)
FROM local.advice AS dup
GROUP BY dup.short
我有这个运行良好的SQL。
SELECT COUNT(*) AS total, e.FirstName, e.LastName
FROM [Messages] AS m
INNER JOIN Employees AS e ON m.SenderId = e.UserId
GROUP BY e.EmployeeId, e.FirstName, e.LastName
但我也希望有总未读消息作为列。
如何在SQL中实现这一点?
SELECT
COUNT(*) AS total,
COUNT(where m.isRead = false) AS totalUnreadMessage
我试图把这句话变成:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when year = ',
year,
' then experience_rate end) AS `',
year, '-Pen`'
) ORDER BY year
) INTO @sql
FROM
spooner_pec;
SET @sql = CONCAT('SELECT policy_number, pr
我有两个模型,User和Group,其中组包含许多用户。如果我想使用单个查询来计算每个组中的用户数,我可以使用以下SQL:
select id, (select count(1) from users where group_id = groups.id) from groups
有没有可能用ActiveRecord有效地做到这一点呢?
为了清楚起见,此查询将列出所有组in,以及每个组中的用户数。
我有两张桌子。我想与两个表进行比较,并删除重复的值。但首先我需要查找'A- confirm -tbl‘,如果id是confirm,那么只从上面的表中删除它。我写了一个简单的SQL代码,但它不能工作。
SELECT A.id
FROM A
FULL JOIN B
ON A.id = B.id
AND A-Confirm-tbl.id='1'
GROUP BY A.id
A B
1 2
5 1
2 5
3 4
10 8
20 15
A-Confirm-tbl
id confirm
1 1
5 0
2 1
3 0
10 0
20
我把一个相当简单的查询和子查询放在JOIN语句中。只有当我在子查询select中包含一个*时,它才起作用。为什么?
这是可行的
$sql = 'SELECT locations.id, title, name, hours.lobby
FROM locations
LEFT JOIN states ON states.id = locations.state_id
LEFT JOIN (SELECT *, type_id IS NOT NULL AS lobby FROM location_hours) AS hours ON locat
我创建了一个SQL SELECT来获取模式中的所有枚举及其值:
SELECT
t.typname, array_agg(e.enumlabel)
FROM pg_type t
JOIN pg_enum e ON t.oid = e.enumtypid
JOIN pg_namespace n ON t.typnamespace = n.oid
WHERE t.typtype = 'e' AND n.nspname = 'public'
GROUP BY typname
我已经将select放入了一个视图中,这样我就不必在每次调用它时都编写它。唯一困扰我
我正在尝试显示来自table1的所有记录,即使在table2中不存在的catid ( table2中的所有员工都应该拥有table1的所有catid,如果没有在table2中显示的话),使用下面的sql查询但得到一个错误
错误代码: 1054。'group语句‘中未知列'catid’
select empid,days from table2 union select catid from
table1 group by empid, catid;
table1:
catid
1
2
3
table2:
empid catid days (computed
标题SQL问题是很难的!如果您能想到如何更好地描述它,请随意更改它!
我有一个非常典型的设置:3个表、users、groups和group_members。
下面是一个SQL Fiddle:
我想知道的是哪些组是哪些用户。
所以,我正在运行:
SELECT u.id, u.firstname, u.lastname,
GROUP_CONCAT(m.group_id) as groups
FROM group_members m, users u
WHERE m.user_id = u.id
GROUP BY id
ORDER BY u.lastname ASC
这很酷,它向我显示了用户的名称和