我正在尝试编写一个SQL,它获取表中与特定列具有相同值的行数。 在这种情况下,该表有一个名为“title”的列。对于我返回的每一行,以及该行的其他列的值,我想获得表中与该行的'title'值具有相同值的行数。 目前,我所拥有的最好的是: 选择名字,姓氏,城市,州,标题,(从myTable中选择count = title的数量);
显然,所有这些都是我子选择表中的行数。 如何获得标题的右侧=引用列标题的值?
感谢任何人的帮助。
答案 0 :(得分:2)
这称为“相关子查询”。它是这样的:
select firstname, lastname, title,
(select count(1) from table where title=a.title) title_count
from table a;
答案 1 :(得分:1)
这未经过测试,但我认为它应该适用于你想要做的事情
WITH titles AS (
SELECT
Title
, COUNT(*) AS Occurences
FROM myTable
GROUP BY Title
)
SELECT
t1.FirstName
, t1.LastName
, t1.City
, t1.state
, t1.title
, titles.Occurences
FROM myTable AS t1
INNER JOIN titles ON t1.Title = titles.Title
答案 2 :(得分:1)
大多数数据库都支持窗口/分析功能。如果您使用其中一个(例如SQL Server,Oracle,Postgres),您可以这样做:
select t.firstname, t.lastname, t.title, t.city, t.state,
count(*) over (partition by title) as numwithtitle
from t