开发者

SQL query to select distinct record with 2 or more repetition in another field

So I have this table of book orders, it contains 2 columns, one is the order ID(primary key) and another is the ID of the book that the customer ordered. For example:

+---------+--------+
| OrderID | BookID |
+---------+--------+
| 0001    | B002   |
| 0002    | B005   |
| 0003    | B002   |
| 0004    | B003   |
| 0005    | B005   |
| 0006    | B002   |
| 0007    | B002   |
+---------+--------+

What I want is to get the IDs of the books that got 2 or more purchases/orders, for example if I run the SQL query against the above data, I would get this as the result:

+--------+
| BookID | 
+--------+
| B002   |
| B005   |
+--------+

I don't know if this can be archived in SQL or开发者_运维知识库 I have to built a simpler statement and repetitive run the query against all the records in another language. I need some help and thanks for reading my question.


Sure it is achievable using standard SQL syntax. Use GROUP and HAVING statements:

SELECT BookId, COUNT(BookId) AS CNT
FROM YourTableName
GROUP BY BookId
HAVING COUNT(BookId) >= 2

Paste your real table name instead of YourTableName in this query.

Using SELECT BookId, COUNT(BookId) AS CNT will return:

+--------+-----+
| BookID | CNT |
+--------+-----+
| B002   | 4   |
| B005   | 2   |
+--------+-----+
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜