If the statement drops out of the cache then the number of executions is reset:
select /* FLUSH_ME */* from dual;
select /* FLUSH_ME */* from dual;
select /* FLUSH_ME */* from dual;
select /* FLUSH_ME */* from dual;
exec dbms_lock.sleep(15);
select sql_id, executions, address, hash_value, first_load_time
from v$sql
where sql_text = 'select /* FLUSH_ME */* from dual';
SQL_ID EXECUTIONS ADDRESS HASH_VALUE FIRST_LOAD_TIME
afjuux59dc7ty 4 0000000097BF3F70 1389764414 2018-06-20/07:39:23
exec sys.dbms_shared_pool.purge('0000000097BF3F70,1389764414', 'C');
select sql_id, executions, address, hash_value, first_load_time
from v$sql
where sql_text = 'select /* FLUSH_ME */* from dual';
no rows selected
select /* FLUSH_ME */* from dual;
select sql_id, executions, address, hash_value, first_load_time
from v$sql
where sql_text = 'select /* FLUSH_ME */* from dual';
SQL_ID EXECUTIONS ADDRESS HASH_VALUE FIRST_LOAD_TIME
afjuux59dc7ty 1 0000000097BF3F70 1389764414 2018-06-20/07:39:23