Let's assume that there is a CSV-file (in UTF-8) 'animals.csv', see image below
Step 1. In QGIS create a new QGIS Project. Then proceed with Layer > Add Layer > Add Delimited Text Layer ...
.
Step 2. Add your area via Layer > Add Layer > Add Vector Layer ...
. After adding areas your QGIS working window may look as follows.
Step 3. Apply the "Join attributes by location" as demonstrated in the image below.
Step 4. In the attribute table of the result from a previous step apply "Field calculator" with a small expression for
CASE
WHEN "Name" IS NULL THEN 0
ELSE 1
END
Alternative is: if("Description", 1, 0)
So, the updated Attribute table will now look as demonstrated in the image below
Step 5. In this last stage I will offer not the best solution in terms of performance for large data but I reckon it is simple to understand. Attaining basic statistics by means of a "Virtual Layer" through Layer > Add Layer > Add/Edit Virtual Layer...
with this query:
WITH o AS (
SELECT COUNT() AS "overlap"
FROM "Joined layer"
WHERE "calc" = 1
),
no AS (
SELECT COUNT() AS "not_overlap"
FROM "Joined layer"
WHERE "calc" = 0
)
SELECT
"o"."overlap",
"no"."not_overlap"
FROM
"o", "no"
And your output is:
Note: that the output does not include geometry.
Additionally, I am providing you with some references that are necessary to read.
References: